Add Quickbook support.

[SVN r72685]
This commit is contained in:
John Maddock 2011-06-19 16:44:32 +00:00
parent 26b491b303
commit 41d12f23ad
60 changed files with 360 additions and 226 deletions

View File

@ -291,6 +291,15 @@ directly inside a /book/ or /part/, in which case you should probably use the sa
you use for whatever subdivisions are in the /book/ or /part/. In any event placing a /section/ within a /book/ or
/part/ will result in invalid XML.
Finally, if you are using Quickbook to generate the documentation, then you may wish to add:
[pre <include>$boost-root/tools/auto_index/include]
to your projects requirements (replacing $boost-root with the path to the root of the Boost tree), so that
the file auto_index_helpers.qbk can be included in your quickbook source with simply a:
[pre \[include auto_index_helpers.qbk\]]
[endsect] [/section:options Available Indexing Options]
[section:optional Making AutoIndex optional]
@ -415,23 +424,21 @@ In Quickbook, you add the same markup but enclose it between two triple-tick \'\
thus
[pre \'\'\'<index\/>\'\'\' ]
Or more easily via the helper file auto_index_helpers.qbk, so that given:
[pre \[include auto_index_helpers.qbk\]]
one can simply write:
[pre
\[named_index class_name Class Index\]
\[named_index function_name Function Index\]
\[named_index typedef_name Typedef Index\]
\[named_index macro_name Macro Index\]
\[index\]
]
If you are writing a Quickbook document with Doxygen reference documentation,
the position of a `[xinclude autodoc.xml]` line in the Quickbook file
determines the location of the Doxygen references section.
You will almost certainly want this as well.
[pre
\[xinclude autodoc.xml\] # Using ['Doxygen reference documentation].
]
You can control the ['displayed name] of the Doxygen reference section thus
by adding to the end of the Doxygen autodoc section in your jamfile.
[pre
<xsl:param>"boost.doxygen.reftitle=Boost.mylibrary C++ Reference"
]
[note AutoIndex knows nothing of the XML `xinclude` element, so if
you're writing raw Docbook XML then you may want to run this through an
XSL processor to flatten everything to one XML file before passing to
@ -590,13 +597,16 @@ when AutoIndex uses them as an index entry:
If you add manual `<indexentry>` markup to your Docbook XML then these will be
passed through unchanged. Please note however, that if you are using
AutoIndex's internal index generation then it only recognises
`<primary>` and `<secondary>` elements within the `<indexterm>`.
`<tertiary>`, `<see>` and `<seealso>` elements are not currently recognised
`<primary>`, `<secondary>` and `<tertiary>` elements within the `<indexterm>`.
`<see>` and `<seealso>` elements are not currently recognised
and auto-index will emit a warning if these are used.
Likewise none of the attributes which can be applied to these elements are used when
AutoIndex generates the index itself, with the exception of the `<type>` attribute.
For Quickbook users, there are some templates in auto_index_helpers.qbk that assist
in adding manual entries without having to escape to Docbook.
[endsect] [/section:entries Step 5: Add Manual Index Entries to Docbook XML - Optional]
[section:pis Step 6: Using XML processing instructions to control what gets indexed.]
@ -629,6 +639,13 @@ then you can achieve this with the following XML processing instructions:
"bridgehead", "remark", "highlights", "abstract", "authorblurb" or "epigraph".]]
]
For Quickbook users the file auto_index_helpers.qbk contains a helper template
that assists in inserting these processing instructions, for example:
[pre \[AutoIndex IgnoreSection\]]
Will cause that section to not be indexed.
[endsect] [/section:pis Step 6: Using XML processing instructions to control what gets indexed.]
[section:build_docs Step 7: Build the Docs]
@ -1057,6 +1074,50 @@ or from scanning source files) and the characters &, ", < and > will be escaped
[endsect] [/section:xml XML Handling]
[section:qbk Quickbook Support]
The file auto_index_helpers.qbk in ['boost-path]/tools/auto_index/include contains various Quickbook
templates to assist with AutoIndex support. One would normally add the above path to your include
search path via an `<include>path` statement in your Jamfile, and then make the templates available
to your Quickbook source via a:
[pre \[include auto_index_helpers.qbk\]]
statement at the start of your Quickbook file.
The available templates are then:
[table
[[Template][Description]]
[[`[index]`][Creates a main index, with no "type" category set, which will be titled simply "Index".]]
[[`[named_index type title]`][Creates an index with the type attribute set to "type" and the title will be "title".[br]
For example to create an index containing only class names one would typically add `[named_index class_name Class Index]`
to your Quickbook source.]]
[[`[AutoIndex Arg]`][Creates a Docbook processing instruction that will be handled by AutoIndex, valid values for "Arg"
are either "IgnoreSection" or "IgnoreBlock".]]
[[`[indexterm1 primary-key]`][Creates a manual index entry that will link to the current section, and have a single primary key "primary-key".
Note that this index key will not have a "type" attribute set, and so will only appear in the main index.]]
[[`[indexterm2 primary-key secondary-key]`][Creates a manual index entry that will link to the current section, and has
"primary-key" and "secondary key" as the primary and secondary keys respectively.
Note that this index key will not have a "type" attribute set, and so will only appear in the main index.]]
[[`[indexterm3 primary-key secondary-key tertiary-key]`][Creates a manual index entry that will link to the current section,
and have primary, secondary and tertiary keys: "primary-key", "secondary key" and "tertiary key".
Note that this index key will not have a "type" attribute set, and so will only appear in the main index.]]
[[`[typed_indexterm1 type primary-key]`][Creates a manual index entry that will link to the current section, and have a single primary key "primary-key".
Note that this index key will have the "type" attribute set to the "type" argument, and so may appear in named sub-indexes
that also have their type attribute set.]]
[[`[typed_indexterm2 type primary-key secondary-key]`][Creates a manual index entry that will link to the current section, and has
"primary-key" and "secondary key" as the primary and secondary keys respectively.
Note that this index key will have the "type" attribute set to the "type" argument, and so may appear in named sub-indexes
that also have their type attribute set.]]
[[`[typed_indexterm3 type primary-key secondary-key tertiary-key]`][Creates a manual index entry that will link to the current section,
and have primary, secondary and tertiary keys: "primary-key", "secondary key" and "tertiary key".
Note that this index key will have the "type" attribute set to the "type" argument, and so may appear in named sub-indexes
that also have their type attribute set.]]
]
[endsect]
[section:comm_ref Command Line Reference]

View File

@ -6,13 +6,13 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
<link rel="home" href="../index.html" title="AutoIndex">
<link rel="up" href="../index.html" title="AutoIndex">
<link rel="prev" href="xml.html" title="XML Handling">
<link rel="prev" href="qbk.html" title="Quickbook Support">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="xml.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
<a accesskey="p" href="qbk.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
@ -73,7 +73,7 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008 , 2011 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008, 2011 John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
@ -81,7 +81,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="xml.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
<a accesskey="p" href="qbk.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
</div>
</body>
</html>

View File

@ -147,7 +147,7 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008 , 2011 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008, 2011 John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>

View File

@ -23,7 +23,7 @@
The following elements can occur in a script:
</p>
<a name="autoindex.script_ref.comments_and_blank_lines"></a><h5>
<a name="id891320"></a>
<a name="autoindex.script_ref.comments_and_blank_lines-heading"></a>
<a class="link" href="script_ref.html#autoindex.script_ref.comments_and_blank_lines">Comments and
blank lines</a>
</h5>
@ -40,7 +40,7 @@
</p></td></tr>
</table></div>
<a name="autoindex.script_ref.inclusion_of_index_terms"></a><h5>
<a name="id891349"></a>
<a name="autoindex.script_ref.inclusion_of_index_terms-heading"></a>
<a class="link" href="script_ref.html#autoindex.script_ref.inclusion_of_index_terms">Inclusion of
Index terms</a>
</h5>
@ -252,7 +252,7 @@
<pre class="programlisting"><span class="identifier">myterm</span> <span class="special">(?:</span><span class="identifier">search_expression1</span><span class="special">|</span><span class="identifier">search_expression1</span><span class="special">)</span> <span class="special">(?:</span><span class="identifier">constrait_expression2</span><span class="special">|</span><span class="identifier">constrait_expression2</span><span class="special">)</span> <span class="identifier">mycategory</span>
</pre>
<a name="autoindex.script_ref.source_file_scanning"></a><h5>
<a name="id892002"></a>
<a name="autoindex.script_ref.source_file_scanning-heading"></a>
<a class="link" href="script_ref.html#autoindex.script_ref.source_file_scanning">Source File Scanning</a>
</h5>
<pre class="programlisting"><span class="special">!</span><span class="identifier">scan</span> <span class="identifier">source</span><span class="special">-</span><span class="identifier">file</span><span class="special">-</span><span class="identifier">name</span>
@ -281,7 +281,7 @@
</p></td></tr>
</table></div>
<a name="autoindex.script_ref.directory_and_source_file_scanning"></a><h5>
<a name="id892080"></a>
<a name="autoindex.script_ref.directory_and_source_file_scanning-heading"></a>
<a class="link" href="script_ref.html#autoindex.script_ref.directory_and_source_file_scanning">Directory
and Source File Scanning</a>
</h5>
@ -310,7 +310,7 @@
</dl>
</div>
<a name="autoindex.script_ref.excluding_terms"></a><h5>
<a name="id892205"></a>
<a name="autoindex.script_ref.excluding_terms-heading"></a>
<a class="link" href="script_ref.html#autoindex.script_ref.excluding_terms">Excluding Terms</a>
</h5>
<pre class="programlisting"><span class="special">!</span><span class="identifier">exclude</span> <span class="identifier">term</span><span class="special">-</span><span class="identifier">list</span>
@ -323,7 +323,7 @@
of things to index.
</p>
<a name="autoindex.script_ref.rewriting_section_names"></a><h5>
<a name="id892260"></a>
<a name="autoindex.script_ref.rewriting_section_names-heading"></a>
<a class="link" href="script_ref.html#autoindex.script_ref.rewriting_section_names">Rewriting Section
Names</a>
</h5>
@ -370,7 +370,7 @@
all index entries - thus preventing lots of entries under "The" etc!
</p>
<a name="autoindex.script_ref.defining_or_changing_the_file_scanners"></a><h5>
<a name="id892413"></a>
<a name="autoindex.script_ref.defining_or_changing_the_file_scanners-heading"></a>
<a class="link" href="script_ref.html#autoindex.script_ref.defining_or_changing_the_file_scanners">Defining
or Changing the File Scanners</a>
</h5>
@ -457,8 +457,8 @@
</p>
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">my_class</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">base_classes</span>
<span class="special">{</span>
<span class="comment">// etc
</span></pre>
<span class="comment">// etc</span>
</pre>
<p>
In the documentation, so that simple mentions of the class name will <span class="emphasis"><em>not</em></span>
get indexed, only the class synopsis if there is one. If this isn't how you
@ -473,7 +473,7 @@
scanner may find in the documentation.
</p>
<a name="autoindex.script_ref.debugging_scanning"></a><h5>
<a name="id892916"></a>
<a name="autoindex.script_ref.debugging_scanning-heading"></a>
<a class="link" href="script_ref.html#autoindex.script_ref.debugging_scanning">Debugging scanning</a>
</h5>
<p>
@ -503,7 +503,7 @@ The index type for this entry is: qi_index
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008 , 2011 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008, 2011 John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>

View File

@ -44,7 +44,7 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008 , 2011 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008, 2011 John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>

View File

@ -71,20 +71,17 @@
</p>
<pre class="programlisting">'''&lt;index/&gt;''' </pre>
<p>
If you are writing a Quickbook document with Doxygen reference documentation,
the position of a <code class="computeroutput"><span class="special">[</span><span class="identifier">xinclude</span>
<span class="identifier">autodoc</span><span class="special">.</span><span class="identifier">xml</span><span class="special">]</span></code> line
in the Quickbook file determines the location of the Doxygen references section.
You will almost certainly want this as well.
Or more easily via the helper file auto_index_helpers.qbk, so that given:
</p>
<pre class="programlisting">[xinclude autodoc.xml] # Using <span class="emphasis"><em>Doxygen reference documentation</em></span>.
</pre>
<pre class="programlisting">[include auto_index_helpers.qbk]</pre>
<p>
You can control the <span class="emphasis"><em>displayed name</em></span> of the Doxygen reference
section thus by adding to the end of the Doxygen autodoc section in your
jamfile.
one can simply write:
</p>
<pre class="programlisting">&lt;xsl:param&gt;"boost.doxygen.reftitle=Boost.mylibrary C++ Reference"
<pre class="programlisting">[named_index class_name Class Index]
[named_index function_name Function Index]
[named_index typedef_name Typedef Index]
[named_index macro_name Macro Index]
[index]
</pre>
<div class="note"><table border="0" summary="Note">
<tr>
@ -156,7 +153,7 @@ boostbook standalone
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008 , 2011 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008, 2011 John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>

View File

@ -55,7 +55,7 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008 , 2011 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008, 2011 John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>

View File

@ -56,7 +56,7 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008 , 2011 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008, 2011 John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>

View File

@ -118,7 +118,7 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008 , 2011 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008, 2011 John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>

View File

@ -85,7 +85,7 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008 , 2011 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008, 2011 John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>

View File

@ -384,10 +384,21 @@
placing a <span class="emphasis"><em>section</em></span> within a <span class="emphasis"><em>book</em></span>
or <span class="emphasis"><em>part</em></span> will result in invalid XML.
</p>
<p>
Finally, if you are using Quickbook to generate the documentation, then
you may wish to add:
</p>
<pre class="programlisting">&lt;include&gt;$boost-root/tools/auto_index/include</pre>
<p>
to your projects requirements (replacing $boost-root with the path to the
root of the Boost tree), so that the file auto_index_helpers.qbk can be
included in your quickbook source with simply a:
</p>
<pre class="programlisting">[include auto_index_helpers.qbk]</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008 , 2011 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008, 2011 John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>

View File

@ -23,8 +23,8 @@
<p>
If you add manual <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">indexentry</span><span class="special">&gt;</span></code> markup to your Docbook XML then these
will be passed through unchanged. Please note however, that if you are using
AutoIndex's internal index generation then it only recognises <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">primary</span><span class="special">&gt;</span></code> and <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">secondary</span><span class="special">&gt;</span></code>
elements within the <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">indexterm</span><span class="special">&gt;</span></code>. <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">tertiary</span><span class="special">&gt;</span></code>,
AutoIndex's internal index generation then it only recognises <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">primary</span><span class="special">&gt;</span></code>, <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">secondary</span><span class="special">&gt;</span></code>
and <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">tertiary</span><span class="special">&gt;</span></code> elements within the <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">indexterm</span><span class="special">&gt;</span></code>.
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">see</span><span class="special">&gt;</span></code> and <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">seealso</span><span class="special">&gt;</span></code>
elements are not currently recognised and auto-index will emit a warning
if these are used.
@ -34,10 +34,14 @@
used when AutoIndex generates the index itself, with the exception of the
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">type</span><span class="special">&gt;</span></code> attribute.
</p>
<p>
For Quickbook users, there are some templates in auto_index_helpers.qbk that
assist in adding manual entries without having to escape to Docbook.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008 , 2011 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008, 2011 John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>

View File

@ -99,10 +99,18 @@
</tr>
</tbody>
</table></div>
<p>
For Quickbook users the file auto_index_helpers.qbk contains a helper template
that assists in inserting these processing instructions, for example:
</p>
<pre class="programlisting">[AutoIndex IgnoreSection]</pre>
<p>
Will cause that section to not be indexed.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008 , 2011 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008, 2011 John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>

View File

@ -52,7 +52,7 @@
</p></td></tr>
</table></div>
<a name="autoindex.tut.refine.restricting_which_sections_are_indexed_for_a_particular_term"></a><h5>
<a name="id891258"></a>
<a name="autoindex.tut.refine.restricting_which_sections_are_indexed_for_a_particular_term-heading"></a>
<a class="link" href="refine.html#autoindex.tut.refine.restricting_which_sections_are_indexed_for_a_particular_term">Restricting
which Sections are indexed for a particular term</a>
</h5>
@ -78,7 +78,7 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008 , 2011 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008, 2011 John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>

View File

@ -139,7 +139,7 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008 , 2011 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008, 2011 John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>

View File

@ -69,7 +69,7 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008 , 2011 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008, 2011 John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>

View File

@ -7,13 +7,13 @@
<link rel="home" href="../index.html" title="AutoIndex">
<link rel="up" href="../index.html" title="AutoIndex">
<link rel="prev" href="workflow.html" title="Understanding The AutoIndex Workflow">
<link rel="next" href="comm_ref.html" title="Command Line Reference">
<link rel="next" href="qbk.html" title="Quickbook Support">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="workflow.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="comm_ref.html"><img src="../images/next.png" alt="Next"></a>
<a accesskey="p" href="workflow.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="qbk.html"><img src="../images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
@ -44,7 +44,7 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008 , 2011 John Maddock<p>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008, 2011 John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
@ -52,7 +52,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="workflow.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="comm_ref.html"><img src="../images/next.png" alt="Next"></a>
<a accesskey="p" href="workflow.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="qbk.html"><img src="../images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -19,9 +19,9 @@
<div><div class="authorgroup"><div class="author"><h3 class="author">
<span class="firstname">John</span> <span class="surname">Maddock</span>
</h3></div></div></div>
<div><p class="copyright">Copyright &#169; 2008 , 2011 John Maddock</p></div>
<div><p class="copyright">Copyright &#169; 2008, 2011 John Maddock</p></div>
<div><div class="legalnotice">
<a name="id881977"></a><p>
<a name="id894882"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
@ -59,12 +59,13 @@
<dt><span class="section"><a href="autoindex/script_ref.html">Script File (.idx) Reference</a></span></dt>
<dt><span class="section"><a href="autoindex/workflow.html">Understanding The AutoIndex Workflow</a></span></dt>
<dt><span class="section"><a href="autoindex/xml.html">XML Handling</a></span></dt>
<dt><span class="section"><a href="autoindex/qbk.html">Quickbook Support</a></span></dt>
<dt><span class="section"><a href="autoindex/comm_ref.html">Command Line Reference</a></span></dt>
</dl>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: June 18, 2011 at 17:55:18 GMT</small></p></td>
<td align="left"><p><small>Last revised: June 19, 2011 at 16:23:27 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>

View File

@ -74,3 +74,4 @@ install pdf-install : standalone : <location>. <install-type>PDF <name>type_trai

View File

@ -6,7 +6,7 @@
]
[section:add_const add_const]
'''<?BoostAutoIndex IgnoreSection?>'''
[AutoIndex IgnoreSection]
template <class T>
struct add_const
@ -24,9 +24,8 @@ type `T` except where __transform_workaround have been applied.
__header ` #include <boost/type_traits/add_const.hpp>` or ` #include <boost/type_traits.hpp>`
'''
<indexterm><primary>one</primary><secondary>two</secondary></indexterm>
'''
[indexterm2 one two]
[typed_indexterm2 class_name..Level One..Level Two]
[table Examples

View File

@ -23,9 +23,8 @@ type `T` except where __transform_workaround have been applied.
__header ` #include <boost/type_traits/add_cv.hpp>` or ` #include <boost/type_traits.hpp>`
'''
<indexterm><primary>one</primary><secondary>two</secondary><tertiary>three</tertiary></indexterm>
'''
[typed_indexterm3 class_name..Level One..Level Two..Level Three]
[indexterm3 one two three]
[table Examples

View File

@ -23,9 +23,8 @@ type `T` except where __transform_workaround have been applied.
__header ` #include <boost/type_traits/add_volatile.hpp>` or ` #include <boost/type_traits.hpp>`
'''
<indexterm><primary>one</primary></indexterm>
'''
[typed_indexterm1 class_name..Level One]
[indexterm1 one]
[table Examples

View File

@ -49,7 +49,7 @@
method available to them.
</p>
<a name="boost_typetraits.background.type_traits"></a><h5>
<a name="id905869"></a>
<a name="boost_typetraits.background.type_traits-heading"></a>
<a class="link" href="background.html#boost_typetraits.background.type_traits">Type Traits</a>
</h5>
<p>
@ -77,7 +77,7 @@
given.
</p>
<a name="boost_typetraits.background.implementation"></a><h5>
<a name="id905932"></a>
<a name="boost_typetraits.background.implementation-heading"></a>
<a class="link" href="background.html#boost_typetraits.background.implementation">Implementation</a>
</h5>
<p>
@ -167,7 +167,7 @@
in the default template.
</p>
<a name="boost_typetraits.background.optimized_copy"></a><h5>
<a name="id906669"></a>
<a name="boost_typetraits.background.optimized_copy-heading"></a>
<a class="link" href="background.html#boost_typetraits.background.optimized_copy">Optimized copy</a>
</h5>
<p>
@ -231,16 +231,16 @@
examples</a>. The code begins by defining a template function <code class="computeroutput"><span class="identifier">do_copy</span></code> that performs a "slow but safe"
copy. The last parameter passed to this function may be either a <code class="computeroutput"><a class="link" href="reference/integral_constant.html" title="integral_constant">true_type</a></code>
or a <code class="computeroutput"><a class="link" href="reference/integral_constant.html" title="integral_constant">false_type</a></code>.
Following that there is an overload of do<span class="underline">copy that
uses `memcpy`: this time the iterators are required to actually be pointers
to the same type, and the final parameter must be a `</span>_true_type<code class="computeroutput"><span class="special">.</span> <span class="identifier">Finally</span><span class="special">,</span> <span class="identifier">the</span> <span class="identifier">version</span>
<span class="identifier">of</span> </code>copy<code class="computeroutput"> <span class="identifier">calls</span>
</code>do<span class="underline">copy`, passing `</span>_has_trivial_assign&lt;value_type&gt;()`
as the final parameter: this will dispatch to the optimized version where appropriate,
otherwise it will call the "slow but safe version".
Following that there is an overload of do_copy that uses <code class="computeroutput"><span class="identifier">memcpy</span></code>:
this time the iterators are required to actually be pointers to the same type,
and the final parameter must be a <code class="computeroutput"><a class="link" href="reference/integral_constant.html" title="integral_constant">true_type</a></code>.
Finally, the version of <code class="computeroutput"><span class="identifier">copy</span></code>
calls <code class="computeroutput"><span class="identifier">do_copy</span></code>, passing <code class="computeroutput"><a class="link" href="reference/has_trivial_assign.html" title="has_trivial_assign">has_trivial_assign</a><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;()</span></code> as the final parameter: this will dispatch
to the optimized version where appropriate, otherwise it will call the "slow
but safe version".
</p>
<a name="boost_typetraits.background.was_it_worth_it_"></a><h5>
<a name="id907035"></a>
<a name="boost_typetraits.background.was_it_worth_it_-heading"></a>
<a class="link" href="background.html#boost_typetraits.background.was_it_worth_it_">Was it worth it?</a>
</h5>
<p>
@ -273,7 +273,7 @@
</li>
</ul></div>
<div class="table">
<a name="id907081"></a><p class="title"><b>Table&#160;1.1.&#160;Time taken to copy 1000 elements using `copy&lt;const T*, T*&gt;` (times
<a name="id893975"></a><p class="title"><b>Table&#160;1.1.&#160;Time taken to copy 1000 elements using `copy&lt;const T*, T*&gt;` (times
in micro-seconds)</b></p>
<div class="table-contents"><table class="table" summary="Time taken to copy 1000 elements using `copy&lt;const T*, T*&gt;` (times
in micro-seconds)">
@ -372,7 +372,7 @@
</table></div>
</div>
<br class="table-break"><a name="boost_typetraits.background.pair_of_references"></a><h5>
<a name="id907231"></a>
<a name="boost_typetraits.background.pair_of_references-heading"></a>
<a class="link" href="background.html#boost_typetraits.background.pair_of_references">Pair of References</a>
</h5>
<p>
@ -409,7 +409,7 @@
to hold non-reference types, references, and constant references:
</p>
<div class="table">
<a name="id910780"></a><p class="title"><b>Table&#160;1.2.&#160;Required Constructor Argument Types</b></p>
<a name="id897675"></a><p class="title"><b>Table&#160;1.2.&#160;Required Constructor Argument Types</b></p>
<div class="table-contents"><table class="table" summary="Required Constructor Argument Types">
<colgroup>
<col>
@ -474,7 +474,7 @@
adds a reference to its type, unless it is already a reference.
</p>
<div class="table">
<a name="id910888"></a><p class="title"><b>Table&#160;1.3.&#160;Using add_reference to synthesize the correct constructor type</b></p>
<a name="id897783"></a><p class="title"><b>Table&#160;1.3.&#160;Using add_reference to synthesize the correct constructor type</b></p>
<div class="table-contents"><table class="table" summary="Using add_reference to synthesize the correct constructor type">
<colgroup>
<col>
@ -590,7 +590,7 @@
easier to maintain and easier to understand.
</p>
<a name="boost_typetraits.background.conclusion"></a><h5>
<a name="id911357"></a>
<a name="boost_typetraits.background.conclusion-heading"></a>
<a class="link" href="background.html#boost_typetraits.background.conclusion">Conclusion</a>
</h5>
<p>
@ -603,16 +603,16 @@
can be optimal as well as generic.
</p>
<a name="boost_typetraits.background.acknowledgements"></a><h5>
<a name="id911374"></a>
<a name="boost_typetraits.background.acknowledgements-heading"></a>
<a class="link" href="background.html#boost_typetraits.background.acknowledgements">Acknowledgements</a>
</h5>
<p>
The authors would like to thank Beman Dawes and Howard Hinnant for their helpful
comments when preparing this article.
</p>
<a name="boost_typetraits.background._anchor_id__background_references____references"></a><h5>
<a name="id911391"></a>
<a class="link" href="background.html#boost_typetraits.background._anchor_id__background_references____references"><a name="background.references"></a> References</a>
<a name="boost_typetraits.background._anchor_id__background_references___references"></a><h5>
<a name="boost_typetraits.background._anchor_id__background_references___references-heading"></a>
<a class="link" href="background.html#boost_typetraits.background._anchor_id__background_references___references"><a name="background.references"></a>References</a>
</h5>
<div class="orderedlist"><ol type="1">
<li>

View File

@ -84,7 +84,7 @@
<span class="keyword">struct</span> <a class="link" href="../reference/remove_volatile.html" title="remove_volatile">remove_volatile</a><span class="special">;</span>
</pre>
<a name="boost_typetraits.category.transform.broken_compiler_workarounds_"></a><h5>
<a name="id915130"></a>
<a name="boost_typetraits.category.transform.broken_compiler_workarounds_-heading"></a>
<a class="link" href="transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">Broken
Compiler Workarounds:</a>
</h5>
@ -127,13 +127,13 @@
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">myspace</span><span class="special">{</span>
<span class="keyword">struct</span> <span class="identifier">MyClass</span> <span class="special">{};</span>
<span class="special">}</span>
<span class="comment">// declare this at global scope:
</span><span class="identifier">BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION</span><span class="special">(</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">)</span>
<span class="comment">// transformations on myspace::MyClass now work:
</span><span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">,</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
<span class="comment">// declare this at global scope:</span>
<span class="identifier">BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION</span><span class="special">(</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">)</span>
<span class="comment">// transformations on myspace::MyClass now work:</span>
<span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">,</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
<span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">,</span> <span class="identifier">remove_const</span><span class="special">&lt;</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span> <span class="keyword">const</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
<span class="comment">// etc.
</span></pre>
<span class="comment">// etc.</span>
</pre>
<p>
Note that the macro BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION evaluates
to nothing on those compilers that <span class="bold"><strong>do</strong></span> support

View File

@ -26,12 +26,12 @@
to determine whether to use <code class="computeroutput"><span class="identifier">memcpy</span></code>
to optimise the copy operation (see <a href="../../../../examples/copy_example.cpp" target="_top">copy_example.cpp</a>):
</p>
<pre class="programlisting"><span class="comment">//
</span><span class="comment">// opt::copy
</span><span class="comment">// same semantics as std::copy
</span><span class="comment">// calls memcpy where appropriate.
</span><span class="comment">//
</span>
<pre class="programlisting"><span class="comment">//</span>
<span class="comment">// opt::copy</span>
<span class="comment">// same semantics as std::copy</span>
<span class="comment">// calls memcpy where appropriate.</span>
<span class="comment">//</span>
<span class="keyword">namespace</span> <span class="identifier">detail</span><span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">I1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I2</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">b</span><span class="special">&gt;</span>
@ -59,12 +59,12 @@
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">I1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I2</span><span class="special">&gt;</span>
<span class="keyword">inline</span> <span class="identifier">I2</span> <span class="identifier">copy</span><span class="special">(</span><span class="identifier">I1</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">I1</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">I2</span> <span class="identifier">out</span><span class="special">)</span>
<span class="special">{</span>
<span class="comment">//
</span> <span class="comment">// We can copy with memcpy if T has a trivial assignment operator,
</span> <span class="comment">// and if the iterator arguments are actually pointers (this last
</span> <span class="comment">// requirement we detect with overload resolution):
</span> <span class="comment">//
</span> <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">I1</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="identifier">value_type</span><span class="special">;</span>
<span class="comment">//</span>
<span class="comment">// We can copy with memcpy if T has a trivial assignment operator,</span>
<span class="comment">// and if the iterator arguments are actually pointers (this last</span>
<span class="comment">// requirement we detect with overload resolution):</span>
<span class="comment">//</span>
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">I1</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="identifier">value_type</span><span class="special">;</span>
<span class="keyword">return</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">copy_imp</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">out</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><a class="link" href="../reference/has_trivial_assign.html" title="has_trivial_assign">has_trivial_assign</a><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;());</span>
<span class="special">}</span>
</pre>

View File

@ -24,12 +24,12 @@
Demonstrates a simple algorithm that uses <code class="computeroutput"><span class="identifier">__has_trivial_destruct</span></code>
to determine whether to destructors need to be called (see <a href="../../../../examples/trivial_destructor_example.cpp" target="_top">trivial_destructor_example.cpp</a>):
</p>
<pre class="programlisting"><span class="comment">//
</span><span class="comment">// algorithm destroy_array:
</span><span class="comment">// The reverse of std::unitialized_copy, takes a block of
</span><span class="comment">// initialized memory and calls destructors on all objects therein.
</span><span class="comment">//
</span>
<pre class="programlisting"><span class="comment">//</span>
<span class="comment">// algorithm destroy_array:</span>
<span class="comment">// The reverse of std::unitialized_copy, takes a block of</span>
<span class="comment">// initialized memory and calls destructors on all objects therein.</span>
<span class="comment">//</span>
<span class="keyword">namespace</span> <span class="identifier">detail</span><span class="special">{</span>
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
@ -47,8 +47,8 @@
<span class="special">{</span>
<span class="special">}</span>
<span class="special">}</span> <span class="comment">// namespace detail
</span>
<span class="special">}</span> <span class="comment">// namespace detail</span>
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="keyword">inline</span> <span class="keyword">void</span> <span class="identifier">destroy_array</span><span class="special">(</span><span class="identifier">T</span><span class="special">*</span> <span class="identifier">p1</span><span class="special">,</span> <span class="identifier">T</span><span class="special">*</span> <span class="identifier">p2</span><span class="special">)</span>
<span class="special">{</span>

View File

@ -26,11 +26,11 @@
to determine whether to use <code class="computeroutput"><span class="identifier">memset</span></code>
to optimise the fill operation (see <a href="../../../../examples/fill_example.cpp" target="_top">fill_example.cpp</a>):
</p>
<pre class="programlisting"><span class="comment">//
</span><span class="comment">// fill
</span><span class="comment">// same as std::fill, but uses memset where appropriate
</span><span class="comment">//
</span><span class="keyword">namespace</span> <span class="identifier">detail</span><span class="special">{</span>
<pre class="programlisting"><span class="comment">//</span>
<span class="comment">// fill</span>
<span class="comment">// same as std::fill, but uses memset where appropriate</span>
<span class="comment">//</span>
<span class="keyword">namespace</span> <span class="identifier">detail</span><span class="special">{</span>
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">I</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">b</span><span class="special">&gt;</span>
<span class="keyword">void</span> <span class="identifier">do_fill</span><span class="special">(</span><span class="identifier">I</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">I</span> <span class="identifier">last</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><a class="link" href="../reference/integral_constant.html" title="integral_constant">integral_constant</a><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span> <span class="identifier">b</span><span class="special">&gt;&amp;)</span>
@ -53,11 +53,11 @@
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">I</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="keyword">inline</span> <span class="keyword">void</span> <span class="identifier">fill</span><span class="special">(</span><span class="identifier">I</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">I</span> <span class="identifier">last</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">)</span>
<span class="special">{</span>
<span class="comment">//
</span> <span class="comment">// We can do an optimised fill if T has a trivial assignment
</span> <span class="comment">// operator and if it's size is one:
</span> <span class="comment">//
</span> <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><a class="link" href="../reference/integral_constant.html" title="integral_constant">integral_constant</a><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span>
<span class="comment">//</span>
<span class="comment">// We can do an optimised fill if T has a trivial assignment </span>
<span class="comment">// operator and if it's size is one:</span>
<span class="comment">//</span>
<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><a class="link" href="../reference/integral_constant.html" title="integral_constant">integral_constant</a><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span>
<span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><a class="link" href="../reference/has_trivial_assign.html" title="has_trivial_assign">has_trivial_assign</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span> <span class="special">&amp;&amp;</span> <span class="special">(</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">T</span><span class="special">)</span> <span class="special">==</span> <span class="number">1</span><span class="special">)&gt;</span> <span class="identifier">truth_type</span><span class="special">;</span>
<span class="identifier">detail</span><span class="special">::</span><span class="identifier">do_fill</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">val</span><span class="special">,</span> <span class="identifier">truth_type</span><span class="special">());</span>
<span class="special">}</span>

View File

@ -29,12 +29,12 @@
the swap to ensure that the algorithm works correctly for both proxying iterators,
and even iterators of different types (see <a href="../../../../examples/iter_swap_example.cpp" target="_top">iter_swap_example.cpp</a>):
</p>
<pre class="programlisting"><span class="comment">//
</span><span class="comment">// iter_swap:
</span><span class="comment">// tests whether iterator is a proxying iterator or not, and
</span><span class="comment">// uses optimal form accordingly:
</span><span class="comment">//
</span><span class="keyword">namespace</span> <span class="identifier">detail</span><span class="special">{</span>
<pre class="programlisting"><span class="comment">//</span>
<span class="comment">// iter_swap:</span>
<span class="comment">// tests whether iterator is a proxying iterator or not, and</span>
<span class="comment">// uses optimal form accordingly:</span>
<span class="comment">//</span>
<span class="keyword">namespace</span> <span class="identifier">detail</span><span class="special">{</span>
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">I</span><span class="special">&gt;</span>
<span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">do_swap</span><span class="special">(</span><span class="identifier">I</span> <span class="identifier">one</span><span class="special">,</span> <span class="identifier">I</span> <span class="identifier">two</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><a class="link" href="../reference/integral_constant.html" title="integral_constant">false_type</a><span class="special">&amp;)</span>
@ -56,11 +56,11 @@
<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">I1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I2</span><span class="special">&gt;</span>
<span class="keyword">inline</span> <span class="keyword">void</span> <span class="identifier">iter_swap</span><span class="special">(</span><span class="identifier">I1</span> <span class="identifier">one</span><span class="special">,</span> <span class="identifier">I2</span> <span class="identifier">two</span><span class="special">)</span>
<span class="special">{</span>
<span class="comment">//
</span> <span class="comment">// See is both arguments are non-proxying iterators,
</span> <span class="comment">// and if both iterator the same type:
</span> <span class="comment">//
</span> <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">I1</span><span class="special">&gt;::</span><span class="identifier">reference</span> <span class="identifier">r1_t</span><span class="special">;</span>
<span class="comment">//</span>
<span class="comment">// See is both arguments are non-proxying iterators, </span>
<span class="comment">// and if both iterator the same type:</span>
<span class="comment">//</span>
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">I1</span><span class="special">&gt;::</span><span class="identifier">reference</span> <span class="identifier">r1_t</span><span class="special">;</span>
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">I2</span><span class="special">&gt;::</span><span class="identifier">reference</span> <span class="identifier">r2_t</span><span class="special">;</span>
<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><a class="link" href="../reference/integral_constant.html" title="integral_constant">integral_constant</a><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span>

View File

@ -92,7 +92,7 @@
of the following macros:
</p>
<div class="table">
<a name="id916731"></a><p class="title"><b>Table&#160;1.4.&#160;Macros for Compiler Intrinsics</b></p>
<a name="id903635"></a><p class="title"><b>Table&#160;1.4.&#160;Macros for Compiler Intrinsics</b></p>
<div class="table-contents"><table class="table" summary="Macros for Compiler Intrinsics">
<colgroup>
<col>

View File

@ -49,10 +49,11 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<a class="indexterm" name="id923544"></a>
<a class="indexterm" name="id910332"></a>
<a class="indexterm" name="id910341"></a>
</p>
<div class="table">
<a name="id923553"></a><p class="title"><b>Table&#160;1.5.&#160;Examples</b></p>
<a name="id910351"></a><p class="title"><b>Table&#160;1.5.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -47,10 +47,11 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<a class="indexterm" name="id924034"></a>
<a class="indexterm" name="id910833"></a>
<a class="indexterm" name="id910845"></a>
</p>
<div class="table">
<a name="id924046"></a><p class="title"><b>Table&#160;1.6.&#160;Examples</b></p>
<a name="id910857"></a><p class="title"><b>Table&#160;1.6.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -49,7 +49,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<div class="table">
<a name="id924577"></a><p class="title"><b>Table&#160;1.7.&#160;Examples</b></p>
<a name="id911387"></a><p class="title"><b>Table&#160;1.7.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -46,7 +46,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<div class="table">
<a name="id925054"></a><p class="title"><b>Table&#160;1.8.&#160;Examples</b></p>
<a name="id911865"></a><p class="title"><b>Table&#160;1.8.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -46,10 +46,11 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
<a class="indexterm" name="id925528"></a>
<a class="indexterm" name="id912339"></a>
<a class="indexterm" name="id912346"></a>
</p>
<div class="table">
<a name="id925536"></a><p class="title"><b>Table&#160;1.9.&#160;Examples</b></p>
<a name="id912353"></a><p class="title"><b>Table&#160;1.9.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -23,9 +23,10 @@
<span class="keyword">struct</span> <span class="identifier">alignment_of</span> <span class="special">:</span> <span class="keyword">public</span> <a class="link" href="integral_constant.html" title="integral_constant">integral_constant</a><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">ALIGNOF</span><span class="special">(</span><span class="identifier">T</span><span class="special">)&gt;</span> <span class="special">{};</span>
</pre>
<p>
<span class="bold"><strong>Inherits:</strong></span> Class template alignment<span class="underline">of inherits from `</span>_integral_constant&lt;std::size_t,
ALIGNOF(T)&gt;<code class="computeroutput"><span class="special">,</span> <span class="identifier">where</span>
</code>ALIGNOF(T)` is the alignment of type T.
<span class="bold"><strong>Inherits:</strong></span> Class template alignment_of inherits
from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">integral_constant</a><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">ALIGNOF</span><span class="special">(</span><span class="identifier">T</span><span class="special">)&gt;</span></code>,
where <code class="computeroutput"><span class="identifier">ALIGNOF</span><span class="special">(</span><span class="identifier">T</span><span class="special">)</span></code> is the
alignment of type T.
</p>
<p>
<span class="emphasis"><em>Note: strictly speaking you should only rely on the value of <code class="computeroutput"><span class="identifier">ALIGNOF</span><span class="special">(</span><span class="identifier">T</span><span class="special">)</span></code> being

View File

@ -41,7 +41,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<div class="table">
<a name="id926724"></a><p class="title"><b>Table&#160;1.10.&#160;Examples</b></p>
<a name="id913582"></a><p class="title"><b>Table&#160;1.10.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -41,7 +41,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<div class="table">
<a name="id929172"></a><p class="title"><b>Table&#160;1.11.&#160;Examples</b></p>
<a name="id916030"></a><p class="title"><b>Table&#160;1.11.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -52,7 +52,7 @@
</p></td></tr>
</table></div>
<div class="table">
<a name="id929545"></a><p class="title"><b>Table&#160;1.12.&#160;Function Traits Members</b></p>
<a name="id916403"></a><p class="title"><b>Table&#160;1.12.&#160;Function Traits Members</b></p>
<div class="table-contents"><table class="table" summary="Function Traits Members">
<colgroup>
<col>
@ -115,7 +115,7 @@
</table></div>
</div>
<br class="table-break"><div class="table">
<a name="id929762"></a><p class="title"><b>Table&#160;1.13.&#160;Examples</b></p>
<a name="id916620"></a><p class="title"><b>Table&#160;1.13.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -42,7 +42,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<div class="table">
<a name="id935539"></a><p class="title"><b>Table&#160;1.14.&#160;Examples</b></p>
<a name="id922400"></a><p class="title"><b>Table&#160;1.14.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -55,8 +55,8 @@
<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">:</span> <span class="identifier">A</span> <span class="special">{};</span>
<span class="keyword">struct</span> <span class="identifier">C</span> <span class="special">:</span> <span class="identifier">A</span> <span class="special">{};</span>
<span class="keyword">struct</span> <span class="identifier">D</span> <span class="special">:</span> <span class="identifier">B</span><span class="special">,</span> <span class="identifier">C</span> <span class="special">{};</span>
<span class="comment">// This produces a compiler error, the conversion is ambiguous:
</span><span class="keyword">bool</span> <span class="keyword">const</span> <span class="identifier">y</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_convertible</span><span class="special">&lt;</span><span class="identifier">D</span><span class="special">*,</span><span class="identifier">A</span><span class="special">*&gt;::</span><span class="identifier">value</span><span class="special">;</span>
<span class="comment">// This produces a compiler error, the conversion is ambiguous:</span>
<span class="keyword">bool</span> <span class="keyword">const</span> <span class="identifier">y</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_convertible</span><span class="special">&lt;</span><span class="identifier">D</span><span class="special">*,</span><span class="identifier">A</span><span class="special">*&gt;::</span><span class="identifier">value</span><span class="special">;</span>
</pre>
<p>
<span class="bold"><strong>C++ Standard Reference:</strong></span> 4 and 8.5.

View File

@ -29,10 +29,10 @@
Note that this template does not detect <span class="emphasis"><em>pointers to functions</em></span>,
or <span class="emphasis"><em>references to functions</em></span>, these are detected by <a class="link" href="is_pointer.html" title="is_pointer">is_pointer</a> and <a class="link" href="is_reference.html" title="is_reference">is_reference</a> respectively:
</p>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">int</span> <span class="identifier">f1</span><span class="special">();</span> <span class="comment">// f1 is of function type.
</span><span class="keyword">typedef</span> <span class="keyword">int</span> <span class="special">(</span><span class="identifier">f2</span><span class="special">*)();</span> <span class="comment">// f2 is a pointer to a function.
</span><span class="keyword">typedef</span> <span class="keyword">int</span> <span class="special">(</span><span class="identifier">f3</span><span class="special">&amp;)();</span> <span class="comment">// f3 is a reference to a function.
</span></pre>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">int</span> <span class="identifier">f1</span><span class="special">();</span> <span class="comment">// f1 is of function type.</span>
<span class="keyword">typedef</span> <span class="keyword">int</span> <span class="special">(</span><span class="identifier">f2</span><span class="special">*)();</span> <span class="comment">// f2 is a pointer to a function.</span>
<span class="keyword">typedef</span> <span class="keyword">int</span> <span class="special">(</span><span class="identifier">f3</span><span class="special">&amp;)();</span> <span class="comment">// f3 is a reference to a function.</span>
</pre>
<p>
<span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.2p1 and 8.3.5.
</p>

View File

@ -46,10 +46,10 @@
can not be used with function types.
</p>
<p>
Without some (as yet unspecified) help from the compiler, is<span class="underline">pod
will never report that a class or struct is a POD; this is always safe, if
possibly sub-optimal. Currently (May 2005) only MWCW 9 and Visual C++ 8 have
the necessary compiler-</span>_intrinsics.
Without some (as yet unspecified) help from the compiler, is_pod will never
report that a class or struct is a POD; this is always safe, if possibly
sub-optimal. Currently (May 2005) only MWCW 9 and Visual C++ 8 have the necessary
compiler-<a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>.
</p>
<p>
<span class="bold"><strong>Header:</strong></span> <code class="computeroutput"> <span class="preprocessor">#include</span>

View File

@ -47,7 +47,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<div class="table">
<a name="id954666"></a><p class="title"><b>Table&#160;1.15.&#160;Examples</b></p>
<a name="id941662"></a><p class="title"><b>Table&#160;1.15.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -47,7 +47,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<div class="table">
<a name="id955148"></a><p class="title"><b>Table&#160;1.16.&#160;Examples</b></p>
<a name="id942144"></a><p class="title"><b>Table&#160;1.16.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -44,7 +44,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<div class="table">
<a name="id955673"></a><p class="title"><b>Table&#160;1.17.&#160;Examples</b></p>
<a name="id942669"></a><p class="title"><b>Table&#160;1.17.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -47,7 +47,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<div class="table">
<a name="id957794"></a><p class="title"><b>Table&#160;1.18.&#160;Examples</b></p>
<a name="id944791"></a><p class="title"><b>Table&#160;1.18.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -46,7 +46,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<div class="table">
<a name="id958339"></a><p class="title"><b>Table&#160;1.19.&#160;Examples</b></p>
<a name="id945336"></a><p class="title"><b>Table&#160;1.19.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -46,7 +46,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<div class="table">
<a name="id958872"></a><p class="title"><b>Table&#160;1.20.&#160;Examples</b></p>
<a name="id945868"></a><p class="title"><b>Table&#160;1.20.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -47,7 +47,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<div class="table">
<a name="id959949"></a><p class="title"><b>Table&#160;1.21.&#160;Examples</b></p>
<a name="id946945"></a><p class="title"><b>Table&#160;1.21.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -46,7 +46,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<div class="table">
<a name="id960505"></a><p class="title"><b>Table&#160;1.22.&#160;Examples</b></p>
<a name="id947501"></a><p class="title"><b>Table&#160;1.22.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -46,7 +46,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<div class="table">
<a name="id961017"></a><p class="title"><b>Table&#160;1.23.&#160;Examples</b></p>
<a name="id948013"></a><p class="title"><b>Table&#160;1.23.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -46,7 +46,7 @@
or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<div class="table">
<a name="id961473"></a><p class="title"><b>Table&#160;1.24.&#160;Examples</b></p>
<a name="id948469"></a><p class="title"><b>Table&#160;1.24.&#160;Examples</b></p>
<div class="table-contents"><table class="table" summary="Examples">
<colgroup>
<col>

View File

@ -23,7 +23,7 @@
Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
Ramey and Jeremy Siek</p></div>
<div><div class="legalnotice">
<a name="id905720"></a><p>
<a name="id892613"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>

View File

@ -17,8 +17,8 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="id962044"></a>Class Index</h2></div></div></div>
<p><a class="link" href="s10.html#idx_id_0">A</a> <a class="link" href="s10.html#idx_id_2">D</a> <a class="link" href="s10.html#idx_id_3">E</a> <a class="link" href="s10.html#idx_id_4">F</a> <a class="link" href="s10.html#idx_id_5">H</a> <a class="link" href="s10.html#idx_id_6">I</a> <a class="link" href="s10.html#idx_id_7">M</a> <a class="link" href="s10.html#idx_id_9">P</a> <a class="link" href="s10.html#idx_id_10">R</a> <a class="link" href="s10.html#idx_id_12">T</a></p>
<a name="id949109"></a>Class Index</h2></div></div></div>
<p><a class="link" href="s10.html#idx_id_0">A</a> <a class="link" href="s10.html#idx_id_2">D</a> <a class="link" href="s10.html#idx_id_3">E</a> <a class="link" href="s10.html#idx_id_4">F</a> <a class="link" href="s10.html#idx_id_5">H</a> <a class="link" href="s10.html#idx_id_6">I</a> <a class="link" href="s10.html#idx_id_7">L</a> <a class="link" href="s10.html#idx_id_8">M</a> <a class="link" href="s10.html#idx_id_10">P</a> <a class="link" href="s10.html#idx_id_11">R</a> <a class="link" href="s10.html#idx_id_13">T</a></p>
<div class="variablelist"><dl>
<dt>
<a name="idx_id_0"></a><span class="term">A</span>
@ -153,18 +153,37 @@
<li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/is_volatile.html" title="is_volatile"><span class="index-entry-level-0">is_volatile</span></a></p></li>
</ul></div></dd>
<dt>
<a name="idx_id_7"></a><span class="term">M</span>
<a name="idx_id_7"></a><span class="term">L</span>
</dt>
<dd><div class="index"><ul type="none" compact><li style="list-style-type: none">
<p><span class="index-entry-level-0">Level One</span></p>
<div class="index"><ul type="none" compact>
<li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/add_volatile.html" title="add_volatile"><span class="index-entry-level-1">add_volatile</span></a></p></li>
<li style="list-style-type: none">
<p><span class="index-entry-level-1">Level Two</span></p>
<div class="index"><ul type="none" compact>
<li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/add_const.html" title="add_const"><span class="index-entry-level-2">add_const</span></a></p></li>
<li style="list-style-type: none">
<p><span class="index-entry-level-2">Level Three</span></p>
<div class="index"><ul type="none" compact><li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/add_cv.html" title="add_cv"><span class="index-entry-level-3">add_cv</span></a></p></li></ul></div>
</li>
</ul></div>
</li>
</ul></div>
</li></ul></div></dd>
<dt>
<a name="idx_id_8"></a><span class="term">M</span>
</dt>
<dd><div class="index"><ul type="none" compact>
<li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/make_signed.html" title="make_signed"><span class="index-entry-level-0">make_signed</span></a></p></li>
<li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/make_unsigned.html" title="make_unsigned"><span class="index-entry-level-0">make_unsigned</span></a></p></li>
</ul></div></dd>
<dt>
<a name="idx_id_9"></a><span class="term">P</span>
<a name="idx_id_10"></a><span class="term">P</span>
</dt>
<dd><div class="index"><ul type="none" compact><li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/promote.html" title="promote"><span class="index-entry-level-0">promote</span></a></p></li></ul></div></dd>
<dt>
<a name="idx_id_10"></a><span class="term">R</span>
<a name="idx_id_11"></a><span class="term">R</span>
</dt>
<dd><div class="index"><ul type="none" compact>
<li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/rank.html" title="rank"><span class="index-entry-level-0">rank</span></a></p></li>
@ -183,7 +202,7 @@
<li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/remove_volatile.html" title="remove_volatile"><span class="index-entry-level-0">remove_volatile</span></a></p></li>
</ul></div></dd>
<dt>
<a name="idx_id_12"></a><span class="term">T</span>
<a name="idx_id_13"></a><span class="term">T</span>
</dt>
<dd><div class="index"><ul type="none" compact><li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/type_with_alignment.html" title="type_with_alignment"><span class="index-entry-level-0">type_with_alignment</span></a></p></li></ul></div></dd>
</dl></div>

View File

@ -17,25 +17,25 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="id963058"></a>Typedef Index</h2></div></div></div>
<p><a class="link" href="s11.html#idx_id_18">F</a> <a class="link" href="s11.html#idx_id_24">R</a> <a class="link" href="s11.html#idx_id_26">T</a></p>
<a name="id950119"></a>Typedef Index</h2></div></div></div>
<p><a class="link" href="s11.html#idx_id_19">F</a> <a class="link" href="s11.html#idx_id_26">R</a> <a class="link" href="s11.html#idx_id_28">T</a></p>
<div class="variablelist"><dl>
<dt>
<a name="idx_id_18"></a><span class="term">F</span>
<a name="idx_id_19"></a><span class="term">F</span>
</dt>
<dd><div class="index"><ul type="none" compact><li style="list-style-type: none">
<p><span class="index-entry-level-0">false_type</span></p>
<div class="index"><ul type="none" compact><li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/integral_constant.html" title="integral_constant"><span class="index-entry-level-1">integral_constant</span></a></p></li></ul></div>
</li></ul></div></dd>
<dt>
<a name="idx_id_24"></a><span class="term">R</span>
<a name="idx_id_26"></a><span class="term">R</span>
</dt>
<dd><div class="index"><ul type="none" compact><li style="list-style-type: none">
<p><span class="index-entry-level-0">result_type</span></p>
<div class="index"><ul type="none" compact><li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/function_traits.html" title="function_traits"><span class="index-entry-level-1">function_traits</span></a></p></li></ul></div>
</li></ul></div></dd>
<dt>
<a name="idx_id_26"></a><span class="term">T</span>
<a name="idx_id_28"></a><span class="term">T</span>
</dt>
<dd><div class="index"><ul type="none" compact><li style="list-style-type: none">
<p><span class="index-entry-level-0">true_type</span></p>

View File

@ -17,11 +17,11 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="id963170"></a>Macro Index</h2></div></div></div>
<p><a class="link" href="s12.html#idx_id_29">B</a></p>
<a name="id950229"></a>Macro Index</h2></div></div></div>
<p><a class="link" href="s12.html#idx_id_31">B</a></p>
<div class="variablelist"><dl>
<dt>
<a name="idx_id_29"></a><span class="term">B</span>
<a name="idx_id_31"></a><span class="term">B</span>
</dt>
<dd><div class="index"><ul type="none" compact>
<li style="list-style-type: none">

View File

@ -16,11 +16,11 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="id963559"></a>Index</h2></div></div></div>
<p><a class="link" href="s13.html#idx_id_42">A</a> <a class="link" href="s13.html#idx_id_43">B</a> <a class="link" href="s13.html#idx_id_44">D</a> <a class="link" href="s13.html#idx_id_45">E</a> <a class="link" href="s13.html#idx_id_46">F</a> <a class="link" href="s13.html#idx_id_47">H</a> <a class="link" href="s13.html#idx_id_48">I</a> <a class="link" href="s13.html#idx_id_49">M</a> <a class="link" href="s13.html#idx_id_50">O</a> <a class="link" href="s13.html#idx_id_51">P</a> <a class="link" href="s13.html#idx_id_52">R</a> <a class="link" href="s13.html#idx_id_53">S</a> <a class="link" href="s13.html#idx_id_54">T</a> <a class="link" href="s13.html#idx_id_55">U</a></p>
<a name="id950615"></a>Index</h2></div></div></div>
<p><a class="link" href="s13.html#idx_id_45">A</a> <a class="link" href="s13.html#idx_id_46">B</a> <a class="link" href="s13.html#idx_id_47">D</a> <a class="link" href="s13.html#idx_id_48">E</a> <a class="link" href="s13.html#idx_id_49">F</a> <a class="link" href="s13.html#idx_id_50">H</a> <a class="link" href="s13.html#idx_id_51">I</a> <a class="link" href="s13.html#idx_id_52">L</a> <a class="link" href="s13.html#idx_id_53">M</a> <a class="link" href="s13.html#idx_id_54">O</a> <a class="link" href="s13.html#idx_id_55">P</a> <a class="link" href="s13.html#idx_id_56">R</a> <a class="link" href="s13.html#idx_id_57">S</a> <a class="link" href="s13.html#idx_id_58">T</a> <a class="link" href="s13.html#idx_id_59">U</a></p>
<div class="variablelist"><dl>
<dt>
<a name="idx_id_42"></a><span class="term">A</span>
<a name="idx_id_45"></a><span class="term">A</span>
</dt>
<dd><div class="index"><ul type="none" compact>
<li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/add_const.html" title="add_const"><span class="index-entry-level-0">add_const</span></a></p></li>
@ -38,7 +38,7 @@
</li>
</ul></div></dd>
<dt>
<a name="idx_id_43"></a><span class="term">B</span>
<a name="idx_id_46"></a><span class="term">B</span>
</dt>
<dd><div class="index"><ul type="none" compact>
<li style="list-style-type: none">
@ -127,11 +127,11 @@
</li>
</ul></div></dd>
<dt>
<a name="idx_id_44"></a><span class="term">D</span>
<a name="idx_id_47"></a><span class="term">D</span>
</dt>
<dd><div class="index"><ul type="none" compact><li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/decay.html" title="decay"><span class="index-entry-level-0">decay</span></a></p></li></ul></div></dd>
<dt>
<a name="idx_id_45"></a><span class="term">E</span>
<a name="idx_id_48"></a><span class="term">E</span>
</dt>
<dd><div class="index"><ul type="none" compact><li style="list-style-type: none">
<p><span class="index-entry-level-0">extent</span></p>
@ -141,7 +141,7 @@
</ul></div>
</li></ul></div></dd>
<dt>
<a name="idx_id_46"></a><span class="term">F</span>
<a name="idx_id_49"></a><span class="term">F</span>
</dt>
<dd><div class="index"><ul type="none" compact>
<li style="list-style-type: none">
@ -158,7 +158,7 @@
</li>
</ul></div></dd>
<dt>
<a name="idx_id_47"></a><span class="term">H</span>
<a name="idx_id_50"></a><span class="term">H</span>
</dt>
<dd><div class="index"><ul type="none" compact>
<li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/has_nothrow_assign.html" title="has_nothrow_assign"><span class="index-entry-level-0">has_nothrow_assign</span></a></p></li>
@ -211,7 +211,7 @@
<li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/has_virtual_destructor.html" title="has_virtual_destructor"><span class="index-entry-level-0">has_virtual_destructor</span></a></p></li>
</ul></div></dd>
<dt>
<a name="idx_id_48"></a><span class="term">I</span>
<a name="idx_id_51"></a><span class="term">I</span>
</dt>
<dd><div class="index"><ul type="none" compact>
<li style="list-style-type: none">
@ -299,14 +299,33 @@
<li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/is_volatile.html" title="is_volatile"><span class="index-entry-level-0">is_volatile</span></a></p></li>
</ul></div></dd>
<dt>
<a name="idx_id_49"></a><span class="term">M</span>
<a name="idx_id_52"></a><span class="term">L</span>
</dt>
<dd><div class="index"><ul type="none" compact><li style="list-style-type: none">
<p><span class="index-entry-level-0">Level One</span></p>
<div class="index"><ul type="none" compact>
<li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/add_volatile.html" title="add_volatile"><span class="index-entry-level-1">add_volatile</span></a></p></li>
<li style="list-style-type: none">
<p><span class="index-entry-level-1">Level Two</span></p>
<div class="index"><ul type="none" compact>
<li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/add_const.html" title="add_const"><span class="index-entry-level-2">add_const</span></a></p></li>
<li style="list-style-type: none">
<p><span class="index-entry-level-2">Level Three</span></p>
<div class="index"><ul type="none" compact><li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/add_cv.html" title="add_cv"><span class="index-entry-level-3">add_cv</span></a></p></li></ul></div>
</li>
</ul></div>
</li>
</ul></div>
</li></ul></div></dd>
<dt>
<a name="idx_id_53"></a><span class="term">M</span>
</dt>
<dd><div class="index"><ul type="none" compact>
<li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/make_signed.html" title="make_signed"><span class="index-entry-level-0">make_signed</span></a></p></li>
<li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/make_unsigned.html" title="make_unsigned"><span class="index-entry-level-0">make_unsigned</span></a></p></li>
</ul></div></dd>
<dt>
<a name="idx_id_50"></a><span class="term">O</span>
<a name="idx_id_54"></a><span class="term">O</span>
</dt>
<dd><div class="index"><ul type="none" compact><li style="list-style-type: none">
<p><span class="index-entry-level-0">one</span></p>
@ -325,11 +344,11 @@
</ul></div>
</li></ul></div></dd>
<dt>
<a name="idx_id_51"></a><span class="term">P</span>
<a name="idx_id_55"></a><span class="term">P</span>
</dt>
<dd><div class="index"><ul type="none" compact><li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/promote.html" title="promote"><span class="index-entry-level-0">promote</span></a></p></li></ul></div></dd>
<dt>
<a name="idx_id_52"></a><span class="term">R</span>
<a name="idx_id_56"></a><span class="term">R</span>
</dt>
<dd><div class="index"><ul type="none" compact>
<li style="list-style-type: none">
@ -358,7 +377,7 @@
</li>
</ul></div></dd>
<dt>
<a name="idx_id_53"></a><span class="term">S</span>
<a name="idx_id_57"></a><span class="term">S</span>
</dt>
<dd><div class="index"><ul type="none" compact><li style="list-style-type: none">
<p><span class="index-entry-level-0">Support for Compiler Intrinsics</span></p>
@ -384,7 +403,7 @@
</ul></div>
</li></ul></div></dd>
<dt>
<a name="idx_id_54"></a><span class="term">T</span>
<a name="idx_id_58"></a><span class="term">T</span>
</dt>
<dd><div class="index"><ul type="none" compact>
<li style="list-style-type: none">
@ -398,7 +417,7 @@
<li style="list-style-type: none"><p><a class="link" href="../boost_typetraits/reference/type_with_alignment.html" title="type_with_alignment"><span class="index-entry-level-0">type_with_alignment</span></a></p></li>
</ul></div></dd>
<dt>
<a name="idx_id_55"></a><span class="term">U</span>
<a name="idx_id_59"></a><span class="term">U</span>
</dt>
<dd><div class="index"><ul type="none" compact><li style="list-style-type: none">
<p><span class="index-entry-level-0">User Defined Specializations</span></p>

View File

@ -23,6 +23,8 @@
[last-revision $Date$]
]
[include ../../../include/auto_index_helpers.qbk]
[def __boost_root ../../../../]
[def __tof '''<replaceable><link linkend="boost_typetraits.reference.integral_constant">true_type</link>-or-<link linkend="boost_typetraits.reference.integral_constant">false_type</link></replaceable>''']
@ -243,19 +245,10 @@ See __has_trivial_constructor.
[include credits.qbk]
'''
<index type="class_name">
<title>Class Index</title>
</index>
<index type="typedef_name">
<title>Typedef Index</title>
</index>
<index type="macro_name">
<title>Macro Index</title>
</index>
<index/>
'''
[named_index class_name Class Index]
[named_index typedef_name Typedef Index]
[named_index macro_name Macro Index]
[index]

View File

@ -0,0 +1,19 @@
[template index[]
'''<index/>'''
]
[template named_index[type title]
'''<index type="'''[type]'''"><title>'''[title]'''</title></index>'''
]
[template AutoIndex [Args] '''<?BoostAutoIndex ''' [Args]'''?>''']
[template indexterm1 [primary] '''<indexterm><primary>'''[primary]'''</primary></indexterm>''']
[template indexterm2 [primary secondary] '''<indexterm><primary>'''[primary]'''</primary><secondary>'''[secondary]'''</secondary></indexterm>''']
[template indexterm3 [primary secondary tertiary] '''<indexterm><primary>'''[primary]'''</primary><secondary>'''[secondary]'''</secondary><tertiary>'''[tertiary]'''</tertiary></indexterm>''']
[template typed_indexterm1 [type primary] '''<indexterm type="'''[type]'''"><primary>'''[primary]'''</primary></indexterm>''']
[template typed_indexterm2 [type primary secondary] '''<indexterm type="'''[type]'''"><primary>'''[primary]'''</primary><secondary>'''[secondary]'''</secondary></indexterm>''']
[template typed_indexterm3 [type primary secondary tertiary] '''<indexterm type="'''[type]'''"><primary>'''[primary]'''</primary><secondary>'''[secondary]'''</secondary><tertiary>'''[tertiary]'''</tertiary></indexterm>''']