<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" "../../../tools/boostbook/dtd/boostbook.dtd">

<!--
    Copyright (c) 2021, Alan Freitas

    Distributed under the Boost Software License, Version 1.0.

    See accompanying file LICENSE_1_0.txt
    or copy at http://boost.org/LICENSE_1_0.txt
-->

<!-- See also https://tdg.docbook.org/tdg/5.1/ -->

<!-- Doxygen reference -->
<informaltable frame="all">
    <tgroup cols="4">
        <colspec colname="a"/>
        <colspec colname="b"/>
        <colspec colname="c"/>
        <colspec colname="d"/>

        <thead>
            <row>
                <entry valign="center" namest="a" nameend="a">
                    <bridgehead renderas="sect2">Base from Member</bridgehead>
                </entry>
                <entry valign="center" namest="b" nameend="b">
                    <bridgehead renderas="sect2">Call Traits</bridgehead>
                </entry>
                <entry valign="center" namest="c" nameend="c">
                    <bridgehead renderas="sect2">Compressed Pair</bridgehead>
                </entry>
                <entry valign="center" namest="d" nameend="d">
                    <bridgehead renderas="sect2">In-place Factory</bridgehead>
                </entry>
            </row>
        </thead>
        <tbody>
            <row>
                <!-- base_from_member -->
                <entry valign="top">
                    <bridgehead renderas="sect3">Classes</bridgehead>
                    <simplelist type="vert" columns="1">
                        <member>
                            <classname alt="boost::base_from_member">base_from_member</classname>
                        </member>
                    </simplelist>
                </entry>

                <!-- call_traits -->
                <entry valign="top">
                    <bridgehead renderas="sect3">Type Traits</bridgehead>
                    <simplelist type="vert" columns="1">
                        <member>
                            <classname alt="boost::call_traits">call_traits</classname>
                        </member>
                        <member>
                            <classname alt="boost::call_traits">call_traits&lt;T&amp;&gt;</classname>
                        </member>
                        <member>
                            <classname alt="boost::call_traits">call_traits&lt;T[N]&gt;</classname>
                        </member>
                        <member>
                            <classname alt="boost::call_traits">call_traits&lt;const T[N]&gt;</classname>
                        </member>
                    </simplelist>
                </entry>

                <!-- compressed_pair -->
                <entry valign="top">
                    <bridgehead renderas="sect3">Classes</bridgehead>
                    <simplelist type="vert" columns="1">
                        <member>
                            <classname alt="boost::compressed_pair">compressed_pair</classname>
                        </member>
                    </simplelist>

                    <bridgehead renderas="sect3">Functions</bridgehead>
                    <simplelist type="vert" columns="1">
                        <member>
                            <headername alt="boost/detail/compressed_pair.hpp">swap</headername>
                        </member>
                    </simplelist>
                </entry>

                <!-- in_place_factory -->
                <entry valign="top">
                    <bridgehead renderas="sect3">Classes</bridgehead>
                    <simplelist type="vert" columns="1">
                        <member>
                            <classname alt="boost::in_place_factory_base">in_place_factory_base</classname>
                        </member>
                        <member>
                            <classname alt="boost::typed_in_place_factory_base">typed_in_place_factory_base</classname>
                        </member>
                    </simplelist>
                </entry>
            </row>
        </tbody>
    </tgroup>

    <tgroup cols="5">
        <colspec colname="a"/>
        <colspec colname="b"/>
        <colspec colname="c"/>
        <colspec colname="d"/>
        <colspec colname="e"/>

        <thead>
            <row>
                <entry valign="center" namest="a" nameend="e">
                    <bridgehead renderas="sect2">Operators</bridgehead>
                </entry>
            </row>
        </thead>

        <tbody>
            <row>
                <entry valign="top">
                    <!-- 13 classes per cell -->
                    <bridgehead renderas="sect3">Classes (1 of 5)</bridgehead>
                    <simplelist type="vert" columns="1">
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.additive1">additive1</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.additive2">additive2</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.arithmetic1">arithmetic1</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.arithmetic2">arithmetic2</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.deref.grpd_iter_oprs.bidirectional_iteratable">bidirectional_iteratable</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.deref.iterator.bidirectional_iterator_helper">
                                bidirectional_iterator_helper
                            </link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.bitwise1">bitwise1</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.bitwise2">bitwise2</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.smpl_oprs.decrementable">decrementable</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.deref.dereference.dereferenceable">dereferenceable</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.smpl_oprs.equality_comparable1">equality_comparable1</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.smpl_oprs.equality_comparable2">equality_comparable2</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.smpl_oprs.equivalent1">equivalent1</link>
                        </member>
                    </simplelist>
                </entry>

                <entry valign="top">
                    <bridgehead renderas="sect3">Classes (2 of 5)</bridgehead>
                    <simplelist type="vert" columns="1">
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.smpl_oprs.equivalent2">equivalent2</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.euclidean_ring_operators1">euclidean_ring_operators1
                            </link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.euclidean_ring_operators2">euclidean_ring_operators2
                            </link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.field_operators1">field_operators1</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.field_operators2">field_operators2</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.deref.grpd_iter_oprs.forward_iteratable">forward_iteratable</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.deref.iterator.forward_iterator_helper">forward_iterator_helper</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.smpl_oprs.incrementable">incrementable</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.deref.dereference.indexable">indexable</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.deref.grpd_iter_oprs.input_iteratable">input_iteratable</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.deref.iterator.input_iterator_helper">input_iterator_helper</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.integer_arithmetic1">integer_arithmetic1</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.integer_arithmetic2">integer_arithmetic2</link>
                        </member>
                    </simplelist>
                </entry>

                <entry valign="top">
                    <bridgehead renderas="sect3">Classes (3 of 5)</bridgehead>
                    <simplelist type="vert" columns="1">
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.integer_multiplicative1">integer_multiplicative1</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.integer_multiplicative2">integer_multiplicative2</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.smpl_oprs.less_than_comparable1">less_than_comparable1</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.smpl_oprs.less_than_comparable2">less_than_comparable2</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.multiplicative1">multiplicative1</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.multiplicative2">multiplicative2</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.ex_oprs.operators1">operators1</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.ex_oprs.operators2">operators2</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.ex_oprs.operators2">operators&lt;T,T&gt;</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.ordered_euclidean_ring_operators1">
                                ordered_euclidean_ring_operators1
                            </link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.ordered_euclidean_ring_operators2">
                                ordered_euclidean_ring_operators2
                            </link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.ordered_field_operators1">ordered_field_operators1</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.ordered_field_operators2">ordered_field_operators2</link>
                        </member>
                    </simplelist>
                </entry>

                <entry valign="top">
                    <bridgehead renderas="sect3">Classes (4 of 5)</bridgehead>
                    <simplelist type="vert" columns="1">
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.ordered_ring_operators1">ordered_ring_operators1</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.ordered_ring_operators2">ordered_ring_operators2</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.deref.grpd_iter_oprs.output_iteratable">output_iteratable</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.deref.iterator.output_iterator_helper">output_iterator_helper</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.smpl_oprs.partially_ordered1">partially_ordered1</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.smpl_oprs.partially_ordered2">partially_ordered2</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.deref.grpd_iter_oprs.random_access_iteratable">random_access_iteratable</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.deref.iterator.random_access_iterator_helper">
                                random_access_iterator_helper
                            </link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.ring_operators1">ring_operators1</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.ring_operators2">ring_operators2</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.shiftable1">shiftable1</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.shiftable2">shiftable2</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.totally_ordered1">totally_ordered1</link>
                        </member>
                    </simplelist>
                </entry>

                <entry valign="top">
                    <bridgehead renderas="sect3">Classes (5 of 5)</bridgehead>
                    <simplelist type="vert" columns="1">
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.totally_ordered2">totally_ordered2</link>
                        </member>
                        <member>
                            <link linkend="utility.utilities.operators.arithmetic.grpd_oprs.unit_steppable">unit_steppable</link>
                        </member>
                    </simplelist>
                </entry>
            </row>
        </tbody>
    </tgroup>

    <tgroup cols="5">
        <colspec colname="a"/>
        <colspec colname="b"/>
        <colspec colname="c"/>
        <colspec colname="d"/>
        <colspec colname="e"/>

        <thead>
            <row>
                <entry valign="center" namest="a" nameend="a">
                    <bridgehead renderas="sect2">Result of</bridgehead>
                </entry>
                <entry valign="center" namest="b" nameend="d">
                    <bridgehead renderas="sect2">String View</bridgehead>
                </entry>
                <entry valign="center" namest="e" nameend="e">
                    <bridgehead renderas="sect2">Value Init</bridgehead>
                </entry>
            </row>
        </thead>

        <tbody>
            <row>
                <!-- result_of -->
                <entry valign="top">
                    <bridgehead renderas="sect3">Type Traits</bridgehead>
                    <simplelist type="vert" columns="1">
                        <member>
                            <classname alt="boost::result_of">result_of</classname>
                        </member>
                        <member>
                            <classname alt="boost::tr1_result_of">tr1_result_of</classname>
                        </member>
                    </simplelist>
                </entry>

                <!-- string_view -->
                <entry valign="top">
                    <bridgehead renderas="sect3">Aliases</bridgehead>
                    <simplelist type="vert" columns="1">
                        <member>
                            <classname alt="boost::basic_string_view">string_view</classname>
                        </member>
                        <member>
                            <classname alt="boost::basic_string_ref">u16string_ref</classname>
                        </member>
                        <member>
                            <classname alt="boost::basic_string_view">u16string_view</classname>
                        </member>
                        <member>
                            <classname alt="boost::basic_string_ref">u32string_ref</classname>
                        </member>
                        <member>
                            <classname alt="boost::basic_string_view">u32string_view</classname>
                        </member>
                        <member>
                            <classname alt="boost::basic_string_ref">wstring_ref</classname>
                        </member>
                        <member>
                            <classname alt="boost::basic_string_view">wstring_view</classname>
                        </member>
                        <member>
                            <classname alt="boost::basic_string_ref">string_ref</classname>
                        </member>
                    </simplelist>
                </entry>

                <entry valign="top">
                    <bridgehead renderas="sect3">Classes</bridgehead>
                    <simplelist type="vert" columns="1">
                        <member>
                            <classname alt="boost::basic_string_ref">basic_string_ref</classname>
                        </member>
                        <member>
                            <classname alt="boost::basic_string_view">basic_string_view</classname>
                        </member>
                    </simplelist>
                    <bridgehead renderas="sect3">Functions</bridgehead>
                    <simplelist type="vert" columns="1">
                        <member>
                            <functionname alt="boost::hash_range">hash_range</functionname>
                        </member>
                        <member>
                            <functionname alt="boost::hash_value">hash_value</functionname>
                        </member>
                    </simplelist>
                </entry>

                <entry valign="top">
                    <bridgehead renderas="sect3">Operators</bridgehead>
                    <simplelist type="vert" columns="1">
                        <member>
                            <headername alt="boost/utility/string_view.hpp">operator==</headername>
                        </member>
                        <member>
                            <headername alt="boost/utility/string_view.hpp">operator!=</headername>
                        </member>
                        <member>
                            <headername alt="boost/utility/string_view.hpp">operator&lt;</headername>
                        </member>
                        <member>
                            <headername alt="boost/utility/string_view.hpp">operator&lt;=</headername>
                        </member>
                        <member>
                            <headername alt="boost/utility/string_view.hpp">operator&gt;</headername>
                        </member>
                        <member>
                            <headername alt="boost/utility/string_view.hpp">operator&gt;=</headername>
                        </member>
                        <member>
                            <headername alt="boost/utility/string_view.hpp">operator&lt;&lt;</headername>
                        </member>
                    </simplelist>
                </entry>

                <!-- value_init -->
                <entry valign="top">
                    <bridgehead renderas="sect3">Classes</bridgehead>
                    <simplelist type="vert" columns="1">
                        <member>
                            <classname alt="boost::initialized">initialized</classname>
                        </member>
                        <member>
                            <classname alt="boost::initialized_value_t">initialized_value_t</classname>
                        </member>
                        <member>
                            <classname alt="boost::value_initialized">value_initialized</classname>
                        </member>
                    </simplelist>
                    <bridgehead renderas="sect3">Functions</bridgehead>
                    <simplelist type="vert" columns="1">
                        <member>
                            <headername alt="boost/utility/value_init.hpp">get</headername>
                        </member>
                        <member>
                            <headername alt="boost/utility/value_init.hpp">swap</headername>
                        </member>
                    </simplelist>
                    <bridgehead renderas="sect3">Constants</bridgehead>
                    <simplelist type="vert" columns="1">
                        <member>
                            <globalname alt="boost::initialized_value">initialized_value</globalname>
                        </member>
                    </simplelist>
                </entry>
            </row>
        </tbody>
    </tgroup>
</informaltable>
