1 <section xmlns="http://docbook.org/ns/docbook" version="5.0"
2 xml:id="appendix.porting.doc" xreflabel="Documentation Hacking">
3 <?dbhtml filename="documentation_hacking.html"?>
5 <info><title>Writing and Generating Documentation</title>
7 <keyword>ISO C++</keyword>
8 <keyword>documentation</keyword>
9 <keyword>style</keyword>
10 <keyword>docbook</keyword>
11 <keyword>doxygen</keyword>
15 <section xml:id="doc.intro">
17 <title>Introduction</title>
20 Documentation for the GNU C++ Library is created from three
21 independent sources: a manual, a FAQ, and an API reference.
24 The sub-directory <filename class="directory">doc</filename>
25 within the main source directory contains
26 <filename>Makefile.am</filename> and
27 <filename>Makefile.in</filename>, which provide rules for
28 generating documentation, described in excruciating detail
29 below. The <filename class="directory">doc</filename>
30 sub-directory also contains three directories: <filename
31 class="directory">doxygen</filename>, which contains scripts and
32 fragments for <command>doxygen</command>, <filename
33 class="directory">html</filename>, which contains an html
34 version of the manual, and <filename
35 class="directory">xml</filename>, which contains an xml version
39 Diverging from established documentation conventions in the rest
40 of the GCC project, libstdc++ does not use Texinfo as a markup
41 language. Instead, Docbook is used to create the manual and the
42 FAQ, and Doxygen is used to construct the API
43 reference. Although divergent, this conforms to the GNU Project
44 recommendations as long as the output is of sufficient quality,
46 <link xmlns:xlink="http://www.w3.org/1999/xlink"
47 xlink:href="http://www.gnu.org/prep/standards/standards.html#Documentation">
52 <section xml:id="doc.generation">
54 <title>Generating Documentation</title>
58 Certain Makefile rules are required by the GNU Coding
59 Standards. These standard rules generate HTML, PDF, XML, or man
60 files. For each of the generative rules, there is an additional
61 install rule that is used to install any generated documentation
62 files into the prescribed installation directory. Files are
63 installed into <filename class="directory">share/doc</filename>
64 or <filename class="directory">share/man</filename> directories.
68 The standard Makefile rules are conditionally supported, based
69 on the results of examining the host environment for
70 prerequisites at configuration time. If requirements are not
71 found, the rule is aliased to a dummy rule that does nothing,
72 and produces no documentation. If the requirements are found,
73 the rule forwards to a private rule that produces the requested
78 For more details on what prerequisites were found and where,
79 please consult the file <filename>config.log</filename> in the
80 libstdc++ build directory. Compare this log to what is expected
81 for the relevant Makefile conditionals:
82 <literal>BUILD_INFO</literal>, <literal>BUILD_XML</literal>,
83 <literal>BUILD_HTML</literal>, <literal>BUILD_MAN</literal>,
84 <literal>BUILD_PDF</literal>, and <literal>BUILD_EPUB</literal>.
88 Supported Makefile rules:
94 <emphasis>make html</emphasis>
97 <emphasis>make install-html</emphasis>
101 Generates multi-page HTML documentation, and installs it
102 in the following directories:
105 <filename>doc/libstdc++/libstdc++-api.html</filename>
108 <filename>doc/libstdc++/libstdc++-manual.html</filename>
115 <emphasis>make pdf</emphasis>
118 <emphasis>make install-pdf</emphasis>
122 Generates indexed PDF documentation, and installs it as
126 <filename>doc/libstdc++/libstdc++-api.pdf</filename>
129 <filename>doc/libstdc++/libstdc++-manual.pdf</filename>
136 <emphasis>make man</emphasis>
139 <emphasis>make install-man</emphasis>
143 Generates man pages, and installs it in the following directory:
146 <filename class="directory">man/man3/</filename>
149 The generated man pages are namespace-qualified, so to look at
150 the man page for <classname>vector</classname>, one would use
151 <command>man std::vector</command>.
158 <emphasis>make epub</emphasis>
161 <emphasis>make install-epub</emphasis>
165 Generates documentation in the ebook/portable electronic
166 reader format called Epub, and installs it as the
170 <filename>doc/libstdc++/libstdc++-manual.epub</filename>
177 <emphasis>make xml</emphasis>
180 <emphasis>make install-xml</emphasis>
184 Generates single-file XML documentation, and installs it
185 as the following files:
188 <filename>doc/libstdc++/libstdc++-api-single.xml</filename>
191 <filename>doc/libstdc++/libstdc++-manual-single.xml</filename>
198 Makefile rules for several other formats are explicitly not
199 supported, and are always aliased to dummy rules. These
200 unsupported formats are: <emphasis>info</emphasis>,
201 <emphasis>ps</emphasis>, and <emphasis>dvi</emphasis>.
205 <section xml:id="doc.doxygen"><info><title>Doxygen</title></info>
207 <section xml:id="doxygen.prereq"><info><title>Prerequisites</title></info>
209 <table frame="all" xml:id="table.doxygen_prereq">
210 <title>Doxygen Prerequisites</title>
212 <tgroup cols="3" align="center" colsep="1" rowsep="1">
213 <colspec colname="c1"/>
214 <colspec colname="c2"/>
215 <colspec colname="c3"/>
220 <entry>Version</entry>
221 <entry>Required By</entry>
228 <entry>coreutils</entry>
240 <entry>doxygen</entry>
246 <entry>graphviz</entry>
248 <entry>graphical hierarchies</entry>
252 <entry>pdflatex</entry>
253 <entry>2007-59</entry>
254 <entry>pdf output</entry>
263 Prerequisite tools are Bash 2.0 or later,
264 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.doxygen.nl">Doxygen</link>
265 1.9.1 or later (for best results use at least 1.9.6), and
266 the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.gnu.org/software/coreutils/">GNU
267 coreutils</link>. (GNU versions of find, xargs, and possibly
268 sed and grep are used, just because the GNU versions make
273 To generate the pretty pictures and hierarchy
275 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.graphviz.org">Graphviz</link> package
276 will need to be installed. For PDF
277 output, <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://tug.org/applications/pdftex/">
278 pdflatex</link> is required as well as a number of TeX packages
279 such as <package>texlive-xtab</package> and
280 <package>texlive-tocloft</package>.
284 Be warned the PDF file generated via doxygen is extremely
285 large. At last count, the PDF file is over three thousand
286 pages. Generating this document taxes the underlying TeX
287 formatting system, and will require the expansion of TeX's memory
288 capacity. Specifically, the <literal>pool_size</literal>
289 variable in the configuration file <filename>texmf.cnf</filename> may
290 need to be increased by a minimum factor of two. Alternatively, using
291 <userinput>LATEX_CMD=lualatex</userinput> might allow the docs to be
292 build without running out of memory.
296 <section xml:id="doxygen.rules"><info><title>Generating the Doxygen Files</title></info>
299 The following Makefile rules run Doxygen to generate HTML
300 docs, XML docs, XML docs as a single file, PDF docs, and the
301 man pages. These rules are not conditional! If the required
302 tools are not found, or are the wrong versions, the rule may
307 <screen><userinput>make doc-html-doxygen</userinput></screen>
311 <screen><userinput>make doc-xml-doxygen</userinput></screen>
315 <screen><userinput>make doc-xml-single-doxygen</userinput></screen>
319 <screen><userinput>make doc-pdf-doxygen</userinput></screen>
323 <screen><userinput>make doc-man-doxygen</userinput></screen>
327 Generated files are output into separate sub directories of
328 <filename class="directory">doc/doxygen/</filename> in the
329 build directory, based on the output format. For instance, the
330 HTML docs will be in <filename class="directory">doc/doxygen/html</filename>.
334 Careful observers will see that the Makefile rules simply call
335 a script from the source tree, <filename>run_doxygen</filename>, which
336 does the actual work of running Doxygen and then (most
337 importantly) massaging the output files. If for some reason
338 you prefer to not go through the Makefile, you can call this
339 script directly. (Start by passing <literal>--help</literal>.)
343 If you wish to tweak the Doxygen settings, do so by editing
344 <filename>doc/doxygen/user.cfg.in</filename>. Notes to fellow
345 library hackers are written in triple-# comments.
350 <section xml:id="doxygen.debug">
351 <info><title>Debugging Generation</title></info>
354 Sometimes, mis-configuration of the pre-requisite tools can
355 lead to errors when attempting to build the
356 documentation. Here are some of the obvious errors, and ways
357 to fix some common issues that may appear quite cryptic.
361 First, if using a rule like <code>make pdf</code>, try to
362 narrow down the scope of the error to either docbook
363 (<code>make doc-pdf-docbook</code>) or doxygen (<code>make
364 doc-pdf-doxygen</code>).
367 Working on the doxygen path only, closely examine the
368 contents of the following build directory: <filename
369 class="directory">build/target/libstdc++-v3/doc/doxygen/latex</filename>.
370 Pay attention to three files enclosed within, annotated as follows.
376 <emphasis>refman.tex</emphasis>
380 The actual latex file, or partial latex file. This is generated
381 via <command>doxygen</command>, and is the LaTeX version of the
382 Doxygen XML file <filename>libstdc++-api.xml</filename>. Go to a specific
383 line, and look at the generated LaTeX, and try to deduce what
384 markup in <filename>libstdc++-api.xml</filename> is causing it.
390 <emphasis>refman.log</emphasis>
394 A log created by <command>latex</command> as it processes the
395 <filename>refman.tex</filename> file. If generating the PDF fails
396 look at the end of this file for errors such as:
398 ! LaTeX Error: File `xtab.sty' not found.
400 This indicates a required TeX package is missing. For the example
401 above the <package>texlive-xtab</package> package needs to be
408 <emphasis>refman.out</emphasis>
412 A log of the compilation of the converted LaTeX form to PDF. This
413 is a linear list, from the beginning of the
414 <filename>refman.tex</filename> file: the last entry of this file
415 should be the end of the LaTeX file. If it is truncated, then you
416 know that the last entry is the last part of the generated LaTeX
417 source file that is valid. Often this file contains an error with
418 a specific line number of <filename>refman.tex</filename> that is
419 incorrect, or will have clues at the end of the file with the dump
420 of the memory usage of LaTeX.
426 If the error at hand is not obvious after examination, a
427 fall-back strategy is to start commenting out the doxygen
428 input sources, which can be found in
429 <filename>doc/doxygen/user.cfg.in</filename>, look for the
430 <literal>INPUT</literal> tag. Start by commenting out whole
431 directories of header files, until the offending header is
432 identified. Then, read the latex log files to try and find
433 surround text, and look for that in the offending header.
438 <section xml:id="doxygen.markup"><info><title>Markup</title></info>
442 In general, libstdc++ files should be formatted according to
443 the rules found in the
444 <link linkend="contrib.coding_style">Coding Standard</link>. Before
445 any doxygen-specific formatting tweaks are made, please try to
446 make sure that the initial formatting is sound.
450 Adding Doxygen markup to a file (informally called
451 <quote>doxygenating</quote>) is very simple. See the
452 <link xmlns:xlink="http://www.w3.org/1999/xlink"
453 xlink:href="https://www.doxygen.nl/download.html#latestman">Doxygen
454 manual</link> for details.
455 We try to use a very-recent version of Doxygen.
460 <classname>deque</classname>/<classname>vector</classname>/<classname>list</classname>
461 and <classname>std::pair</classname> as examples. For
462 functions, see their member functions, and the free functions
463 in <filename class="headerfile">stl_algobase.h</filename>. Member
464 functions of other container-like types should read similarly to
465 these member functions.
469 Some commentary to accompany
470 the first list in the <link xmlns:xlink="http://www.w3.org/1999/xlink"
471 xlink:href="https://www.doxygen.nl/manual/docblocks.html">Special
472 Documentation Blocks</link> section of the Doxygen manual:
475 <orderedlist inheritnum="ignore" continuation="restarts">
477 <para>For longer comments, use the Javadoc style...</para>
482 ...not the Qt style. The intermediate *'s are preferred.
488 Use the triple-slash style only for one-line comments (the
489 <quote>brief</quote> mode).
495 This is disgusting. Don't do this.
501 Some specific guidelines:
505 Use the @-style of commands, not the !-style. Please be
506 careful about whitespace in your markup comments. Most of the
507 time it doesn't matter; doxygen absorbs most whitespace, and
508 both HTML and *roff are agnostic about whitespace. However,
509 in <pre> blocks and @code/@endcode sections, spacing can
510 have <quote>interesting</quote> effects.
514 Use either kind of grouping, as
515 appropriate. <filename>doxygroups.cc</filename> exists for this
516 purpose. See <filename class="headerfile">stl_iterator.h</filename>
517 for a good example of the <quote>other</quote> kind of grouping.
521 Markdown can be used for formatting text. Doxygen is configured to
522 support this, and it is a good compromise between readable comments
523 in the C++ source and nice formatting in the generated HTML.
524 Please format the names of function parameters in either code font
525 or italics. Use underscores or @e for emphasis when necessary.
526 Use backticks or @c to refer to other standard names.
527 (Examples of all these abound in the present code.)
531 Complicated math functions should use the multi-line format.
532 An example from <filename class="headerfile">random.h</filename>:
536 <literallayout class="normal">
538 * @brief A model of a linear congruential random number generator.
541 * x_{i+1}\leftarrow(ax_{i} + c) \bmod m
548 One area of note is the markup required for
549 <literal>@file</literal> markup in header files. Two details
550 are important: for filenames that have the same name in
551 multiple directories, include part of the installed path to
552 disambiguate. For example:
556 <literallayout class="normal">
557 /** @file debug/vector
558 * This file is a GNU debug extension to the Standard C++ Library.
564 The other relevant detail for header files is the use of a
565 libstdc++-specific doxygen alias that helps distinguish
566 between public header files (like <filename class="headerfile">random</filename>)
567 from implementation or private header files (like
568 <filename class="headerfile">bits/c++config.h</filename>.) This alias is spelled
569 <literal>@headername</literal> and can take one or two
570 arguments that detail the public header file or files that
571 should be included to use the contents of the file. All header
572 files that are not intended for direct inclusion must use
573 <literal>headername</literal> in the <literal>file</literal>
578 <literallayout class="normal">
579 /** @file bits/basic_string.h
580 * This is an internal header file, included by other library headers.
581 * Do not attempt to use it directly. @headername{string}
587 Be careful about using certain, special characters when
588 writing Doxygen comments. Single and double quotes, and
589 separators in filenames are two common trouble spots. When in
590 doubt, consult the following table.
593 <table frame="all" xml:id="table.doxygen_cmp">
594 <title>HTML to Doxygen Markup Comparison</title>
596 <tgroup cols="2" align="left" colsep="1" rowsep="1">
597 <colspec colname="c1"/>
598 <colspec colname="c2"/>
603 <entry>Doxygen</entry>
604 <entry>Markdown</entry>
628 <entry><i></entry>
629 <entry>@a word</entry>
630 <entry>_word_ or *word*</entry>
634 <entry><b></entry>
635 <entry>@b word</entry>
636 <entry>**word** or __word__</entry>
640 <entry><code></entry>
641 <entry>@c word</entry>
642 <entry>`word`</entry>
646 <entry><em></entry>
647 <entry>@a word</entry>
648 <entry>_word_ or *word*</entry>
652 <entry><em></entry>
653 <entry><em>two words or more</em></entry>
654 <entry>_two words or more_</entry>
666 <section xml:id="doc.docbook"><info><title>Docbook</title></info>
669 <section xml:id="docbook.prereq"><info><title>Prerequisites</title></info>
672 <table frame="all" xml:id="table.docbook_prereq">
673 <title>Docbook Prerequisites</title>
675 <tgroup cols="3" align="center" colsep="1" rowsep="1">
676 <colspec colname="c1"/>
677 <colspec colname="c2"/>
678 <colspec colname="c3"/>
683 <entry>Version</entry>
684 <entry>Required By</entry>
691 <entry>docbook5-style-xsl</entry>
692 <entry>1.76.1</entry>
697 <entry>xsltproc</entry>
698 <entry>1.1.26</entry>
703 <entry>xmllint</entry>
705 <entry>validation</entry>
709 <entry>dblatex</entry>
711 <entry>pdf output</entry>
715 <entry>pdflatex</entry>
716 <entry>2007-59</entry>
717 <entry>pdf output</entry>
721 <entry>docbook2X</entry>
723 <entry>info output</entry>
727 <entry>epub3 stylesheets</entry>
729 <entry>epub output</entry>
737 An XML editor is recommended for editing the DocBook sources. Many
738 exist: some notable options
739 include <command>emacs</command>, <application>Kate</application>,
740 or <application>Conglomerate</application>.
744 Some editors support special <quote>XML Validation</quote>
745 modes that can validate the file as it is
746 produced. Recommended is the <command>nXML Mode</command>
747 for <command>emacs</command>.
751 Besides an editor, additional DocBook files and XML tools are
756 Access to the DocBook 5.0 stylesheets and schema is required. The
757 stylesheets are usually packaged by vendor, in something
758 like <filename>docbook5-style-xsl</filename>. To exactly match
759 generated output, please use a version of the stylesheets
761 to <filename>docbook5-style-xsl-1.75.2-3</filename>. The
762 installation directory for this package corresponds to
763 the <literal>XSL_STYLE_DIR</literal>
764 in <filename>doc/Makefile.am</filename> and defaults
765 to <filename class="directory">/usr/share/sgml/docbook/xsl-ns-stylesheets</filename>.
769 For processing XML, an XSLT processor and some style
770 sheets are necessary. Defaults are <command>xsltproc</command>
771 provided by <filename>libxslt</filename>.
775 For validating the XML document, you'll need
776 something like <command>xmllint</command> and access to the
777 relevant DocBook schema. These are provided
778 by a vendor package like <filename>libxml2</filename> and <filename>docbook5-schemas-5.0-4</filename>
782 For PDF output, something that transforms valid Docbook XML to PDF is
783 required. Possible solutions include <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://dblatex.sourceforge.net">dblatex</link>,
784 <command>xmlto</command>, or <command>prince</command>. Of
785 these, <command>dblatex</command> is the default.
786 Please consult the <email>libstdc++@gcc.gnu.org</email> list when
787 preparing printed manuals for current best practice and
792 For Texinfo output, something that transforms valid Docbook
793 XML to Texinfo is required. The default choice is <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://docbook2x.sourceforge.net/">docbook2X</link>.
797 For epub output, the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://sourceforge.net/projects/docbook/files/epub3/">stylesheets</link> for EPUB3 are required. These stylesheets are still in development. To validate the created file, <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://github.com/w3c/epubcheck">epubcheck</link> is necessary.
801 <section xml:id="docbook.rules"><info><title>Generating the DocBook Files</title></info>
805 The following Makefile rules generate (in order): an HTML
806 version of all the DocBook documentation, a PDF version of the
807 same, and a single XML document. These rules are not
808 conditional! If the required tools are not found, or are the
809 wrong versions, the rule may end in an error.
813 <screen><userinput>make doc-html-docbook</userinput></screen>
817 <screen><userinput>make doc-pdf-docbook</userinput></screen>
821 <screen><userinput>make doc-xml-single-docbook</userinput></screen>
825 Generated files are output into separate sub-directores of
826 <filename class="directory">doc/docbook/</filename> in the
827 build directory, based on the output format. For instance, the
828 HTML docs will be in <filename
829 class="directory">doc/docbook/html</filename>.
833 The <userinput>doc-html-docbook-regenerate</userinput> target will
834 generate the HTML files and copy them back to the libstdc++ source tree.
835 This can be used to update the HTML files that are checked in to
840 If the Docbook stylesheets are installed in a custom location,
841 one can use the variable <literal>XSL_STYLE_DIR</literal> to
842 override the Makefile defaults. For example:
847 make <literal>XSL_STYLE_DIR="/usr/share/xml/docbook/stylesheet/nwalsh"</literal> doc-html-docbook
853 <section xml:id="docbook.debug">
854 <info><title>Debugging Generation</title></info>
857 Sometimes, mis-configuration of the pre-requisite tools can
858 lead to errors when attempting to build the
859 documentation. Here are some of the obvious errors, and ways
860 to fix some common issues that may appear quite cryptic.
864 First, if using a rule like <code>make pdf</code>, try to
865 narrow down the scope of the error to either docbook
866 (<code>make doc-pdf-docbook</code>) or doxygen (<code>make
867 doc-pdf-doxygen</code>).
871 Working on the docbook path only, closely examine the
872 contents of the following build directory:
873 <filename class="directory">build/target/libstdc++-v3/doc/docbook/latex</filename>.
874 Pay attention to three files enclosed within, annotated as follows.
881 <emphasis>spine.tex</emphasis>
885 The actual latex file, or partial latex file. This is generated
886 via <command>dblatex</command>, and is the LaTeX version of the
887 DocBook XML file <filename>spine.xml</filename>. Go to a specific
888 line, and look at the generated LaTeX, and try to deduce what
889 markup in <filename>spine.xml</filename> is causing it.
895 <emphasis>spine.out</emphasis>
899 A log of the conversion from the XML form to the LaTeX form. This
900 is a linear list, from the beginning of the
901 <filename>spine.xml</filename> file: the last entry of this file
902 should be the end of the DocBook file. If it is truncated, then
903 you know that the last entry is the last part of the XML source
904 file that is valid. The error is after this point.
911 <emphasis>spine.log</emphasis>
915 A log of the compilation of the converted LaTeX form to pdf. This
916 is a linear list, from the beginning of the
917 <filename>spine.tex</filename> file: the last entry of this file
918 should be the end of the LaTeX file. If it is truncated, then you
919 know that the last entry is the last part of the generated LaTeX
920 source file that is valid. Often this file contains an error with
921 a specific line number of <filename>spine.tex</filename> that is
929 If the error at hand is not obvious after examination, or if one
930 encounters the inscruitable <quote>Incomplete
931 \ifmmode</quote> error, a fall-back strategy is to start
932 commenting out parts of the XML document (regardless of what
933 this does to over-all document validity). Start by
934 commenting out each of the largest parts of the
935 <filename>spine.xml</filename> file, section by section,
936 until the offending section is identified.
942 <section xml:id="docbook.validation"><info><title>Editing and Validation</title></info>
945 After editing the xml sources, please make sure that the XML
946 documentation and markup is still valid. This can be
947 done easily, with the following validation rule:
951 <userinput>make doc-xml-validate-docbook</userinput>
955 This is equivalent to doing:
960 xmllint --noout --valid <filename>xml/index.xml</filename>
965 Please note that individual sections and chapters of the
966 manual can be validated by substituting the file desired for
967 <filename>xml/index.xml</filename> in the command
968 above. Reducing scope in this manner can be helpful when
969 validation on the entire manual fails.
973 All Docbook xml sources should always validate. No excuses!
978 <section xml:id="docbook.examples"><info><title>File Organization and Basics</title></info>
981 <literallayout class="normal">
982 <emphasis>Which files are important</emphasis>
984 All Docbook files are in the directory
987 Inside this directory, the files of importance:
988 spine.xml - index to documentation set
989 manual/spine.xml - index to manual
990 manual/*.xml - individual chapters and sections of the manual
991 faq.xml - index to FAQ
992 api.xml - index to source level / API
994 All *.txml files are template xml files, i.e., otherwise empty files with
995 the correct structure, suitable for filling in with new information.
997 <emphasis>Canonical Writing Style</emphasis>
1001 member function template
1002 (via C++ Templates, Vandevoorde)
1004 class in namespace std: allocator, not std::allocator
1006 header file: iostream, not <iostream>
1009 <emphasis>General structure</emphasis>
1044 <section xml:id="docbook.markup"><info><title>Markup By Example</title></info>
1048 Complete details on Docbook markup can be found in the
1049 <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://tdg.docbook.org/tdg/5.0/ref-elements.html">DocBook Element Reference</link>.
1050 An incomplete reference for HTML to Docbook conversion is
1051 detailed in the table below.
1054 <table frame="all" xml:id="table.docbook_cmp">
1055 <title>HTML to Docbook XML Markup Comparison</title>
1057 <tgroup cols="2" align="left" colsep="1" rowsep="1">
1058 <colspec colname="c1"/>
1059 <colspec colname="c2"/>
1064 <entry>Docbook</entry>
1070 <entry><p></entry>
1071 <entry><para></entry>
1074 <entry><pre></entry>
1075 <entry><computeroutput>, <programlisting>,
1076 <literallayout></entry>
1079 <entry><ul></entry>
1080 <entry><itemizedlist></entry>
1083 <entry><ol></entry>
1084 <entry><orderedlist></entry>
1087 <entry><il></entry>
1088 <entry><listitem></entry>
1091 <entry><dl></entry>
1092 <entry><variablelist></entry>
1095 <entry><dt></entry>
1096 <entry><term></entry>
1099 <entry><dd></entry>
1100 <entry><listitem></entry>
1104 <entry><a href=""></entry>
1105 <entry><ulink url=""></entry>
1108 <entry><code></entry>
1109 <entry><literal>, <programlisting></entry>
1112 <entry><strong></entry>
1113 <entry><emphasis></entry>
1116 <entry><em></entry>
1117 <entry><emphasis></entry>
1121 <entry><quote></entry>
1128 And examples of detailed markup for which there are no real HTML
1129 equivalents are listed in the table below.
1132 <table frame="all" xml:id="table.docbook_elem">
1133 <title>Docbook XML Element Use</title>
1135 <tgroup cols="2" align="left" colsep="1" rowsep="1">
1136 <colspec colname="c1"/>
1137 <colspec colname="c2"/>
1141 <entry>Element</entry>
1148 <entry><structname></entry>
1149 <entry><structname>char_traits</structname></entry>
1152 <entry><classname></entry>
1153 <entry><classname>string</classname></entry>
1156 <entry><function></entry>
1158 <para><function>clear()</function></para>
1159 <para><function>fs.clear()</function></para>
1163 <entry><type></entry>
1164 <entry><type>long long</type></entry>
1167 <entry><varname></entry>
1168 <entry><varname>fs</varname></entry>
1171 <entry><literal></entry>
1173 <para><literal>-Weffc++</literal></para>
1174 <para><literal>rel_ops</literal></para>
1178 <entry><constant></entry>
1180 <para><constant>_GNU_SOURCE</constant></para>
1181 <para><constant>3.0</constant></para>
1185 <entry><command></entry>
1186 <entry><command>g++</command></entry>
1189 <entry><errortext></entry>
1190 <entry><errortext>In instantiation of</errortext></entry>
1193 <entry><filename></entry>
1195 <para><filename class="headerfile">ctype.h</filename></para>
1196 <para><filename class="directory">/home/gcc/build</filename></para>
1197 <para><filename class="libraryfile">libstdc++.so</filename></para>