Commit 03a32789 by Benjamin Kosnik Committed by Benjamin Kosnik

faq.xml: Adjust structure for pdf index.

2010-02-24  Benjamin Kosnik  <bkoz@redhat.com>

	* doc/xml/faq.xml: Adjust structure for pdf index.
	* doc/xml/manual/mt_allocator.xml: Same.
	* doc/xml/manual/allocator.xml: Same.
	* doc/xml/manual/ctype.xml: Same.
	* doc/xml/manual/numerics.xml: Same.
	* doc/xml/manual/codecvt.xml: Same.
	* doc/xml/manual/intro.xml: Same.
	* doc/xml/manual/shared_ptr.xml: Same.
	* doc/xml/manual/status_cxxtr1.xml: Same.
	* doc/xml/manual/auto_ptr.xml: Same.
	* doc/xml/manual/internals.xml: Same.
	* doc/xml/manual/status_cxx1998.xml: Same.
	* doc/xml/manual/parallel_mode.xml: Same.
	* doc/xml/manual/profile_mode.xml: Same.
	* doc/xml/manual/containers.xml: Same.
	* doc/xml/manual/io.xml: Same.
	* doc/xml/manual/concurrency_extensions.xml: Same.
	* doc/xml/manual/appendix_porting.xml: Same.
	* doc/xml/manual/utilities.xml: Same.
	* doc/xml/manual/support.xml: Same.
	* doc/xml/manual/bitmap_allocator.xml: Same.
	* doc/xml/manual/configure.xml: Same.
	* doc/xml/manual/build_hacking.xml: Same.
	* doc/xml/manual/evolution.xml: Same.
	* doc/xml/manual/using.xml: Same.
	* doc/xml/manual/debug.xml: Same.
	* doc/xml/manual/localization.xml: Same.
	* doc/xml/manual/strings.xml: Same.
	* doc/xml/manual/debug_mode.xml: Same.
	* doc/xml/manual/locale.xml: Same.
	* doc/xml/manual/extensions.xml: Same.
	* doc/xml/manual/appendix_contributing.xml: Same.
	* doc/xml/manual/prerequisites.xml: Same.
	* doc/xml/manual/messages.xml: Same.
	* doc/xml/manual/diagnostics.xml: Same.
	* doc/xml/manual/algorithms.xml: Same.
	* doc/xml/manual/appendix_free.xml: Same.
	* doc/xml/manual/iterators.xml: Same.
	* doc/xml/manual/spine.xml: Same.
	* doc/xml/manual/status_cxxtr24733.xml: Same.
	* doc/xml/manual/status_cxx200x.xml: Same.
	* doc/Makefile.am: Refactor.
	* doc/Makefile.in: Regenerate.

	* include/bits/c++0x_warning.h: Tweak doxygen file markup.

From-SVN: r157059
parent 72c2ffd3
2010-02-24 Benjamin Kosnik <bkoz@redhat.com>
* doc/xml/faq.xml: Adjust structure for pdf index.
* doc/xml/manual/mt_allocator.xml: Same.
* doc/xml/manual/allocator.xml: Same.
* doc/xml/manual/ctype.xml: Same.
* doc/xml/manual/numerics.xml: Same.
* doc/xml/manual/codecvt.xml: Same.
* doc/xml/manual/intro.xml: Same.
* doc/xml/manual/shared_ptr.xml: Same.
* doc/xml/manual/status_cxxtr1.xml: Same.
* doc/xml/manual/auto_ptr.xml: Same.
* doc/xml/manual/internals.xml: Same.
* doc/xml/manual/status_cxx1998.xml: Same.
* doc/xml/manual/parallel_mode.xml: Same.
* doc/xml/manual/profile_mode.xml: Same.
* doc/xml/manual/containers.xml: Same.
* doc/xml/manual/io.xml: Same.
* doc/xml/manual/concurrency_extensions.xml: Same.
* doc/xml/manual/appendix_porting.xml: Same.
* doc/xml/manual/utilities.xml: Same.
* doc/xml/manual/support.xml: Same.
* doc/xml/manual/bitmap_allocator.xml: Same.
* doc/xml/manual/configure.xml: Same.
* doc/xml/manual/build_hacking.xml: Same.
* doc/xml/manual/evolution.xml: Same.
* doc/xml/manual/using.xml: Same.
* doc/xml/manual/debug.xml: Same.
* doc/xml/manual/localization.xml: Same.
* doc/xml/manual/strings.xml: Same.
* doc/xml/manual/debug_mode.xml: Same.
* doc/xml/manual/locale.xml: Same.
* doc/xml/manual/extensions.xml: Same.
* doc/xml/manual/appendix_contributing.xml: Same.
* doc/xml/manual/prerequisites.xml: Same.
* doc/xml/manual/messages.xml: Same.
* doc/xml/manual/diagnostics.xml: Same.
* doc/xml/manual/algorithms.xml: Same.
* doc/xml/manual/appendix_free.xml: Same.
* doc/xml/manual/iterators.xml: Same.
* doc/xml/manual/spine.xml: Same.
* doc/xml/manual/status_cxxtr24733.xml: Same.
* doc/xml/manual/status_cxx200x.xml: Same.
* doc/Makefile.am: Refactor.
* doc/Makefile.in: Regenerate.
* include/bits/c++0x_warning.h: Tweak doxygen file markup.
2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* testsuite/ext/new_allocator/deallocate_global.cc: Require * testsuite/ext/new_allocator/deallocate_global.cc: Require
......
...@@ -22,44 +22,50 @@ ...@@ -22,44 +22,50 @@
include $(top_srcdir)/fragment.am include $(top_srcdir)/fragment.am
# Documentation Overview
#
# There are two main source materials for libstdc++ documentation.
# The first is the doxygen markup in libstdc++ sources. And the second
# is the docbook markup in doc/xml/. A third and more obscure option
# deals with charting performance tests.
# Default, points to current best sub-rule that is the best conversion.
# MAN
doc-man: doc-man-doxygen
# PDF
doc-pdf: doc-pdf-dblatex-docbook
# HTML
doc-html: doc-html-docbook
# Doxygen configuration # Doxygen configuration
# Assumes doxygen, graphviz (with dot) installed # Assumes doxygen, graphviz (with dot) installed
doc_doxygen_script=${top_srcdir}/scripts/run_doxygen doxygen_script=${top_srcdir}/scripts/run_doxygen
doxygen_outdir = ${glibcxx_builddir}/doc/doxygen
doc-html-doxygen: doc-html-doxygen:
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \ -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
builddir=`cd ..; ${PWD_COMMAND}`; \ builddir=`cd ..; ${PWD_COMMAND}`; \
${SHELL} ${doc_doxygen_script} \ ${SHELL} ${doxygen_script} \
--host_alias=${host_alias} --mode=html $${srcdir} $${builddir} YES) --host_alias=${host_alias} --mode=html $${srcdir} $${builddir} YES)
doc-man-doxygen: doc-man-doxygen:
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \ -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
builddir=`cd ..; ${PWD_COMMAND}`; \ builddir=`cd ..; ${PWD_COMMAND}`; \
${SHELL} ${doc_doxygen_script} \ ${SHELL} ${doxygen_script} \
--host_alias=${host_alias} --mode=man $${srcdir} $${builddir} YES) --host_alias=${host_alias} --mode=man $${srcdir} $${builddir} YES)
doc-xml-doxygen: doc-xml-doxygen:
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \ -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
builddir=`cd ..; ${PWD_COMMAND}`; \ builddir=`cd ..; ${PWD_COMMAND}`; \
${SHELL} ${doc_doxygen_script} \ ${SHELL} ${doxygen_script} \
--host_alias=${host_alias} --mode=xml $${srcdir} $${builddir} NO) --host_alias=${host_alias} --mode=xml $${srcdir} $${builddir} NO)
doxygen_xmldir = ${glibcxx_builddir}/doc/doxygen/xml doc-xml-single-doxygen:
doc-xml-doxygen-single: doc-xml-doxygen
@echo "Generating doxygen xml single file..." @echo "Generating doxygen xml single file..."
$(XSLTPROC) ${doxygen_xmldir}/combine.xslt ${doxygen_xmldir}/spine.xml > ${doxygen_xmldir}/all.xml; $(XSLTPROC) ${doxygen_outdir}/xml/combine.xslt \
${doxygen_outdir}/xml/spine.xml > ${doxygen_outdir}/xml/all.xml;
# Performance doc and graph configuration.
# Assumes pychart, beautiful soup installed.
# Generates the plots and graphs for performance testing.
doc_performance_script=${top_srcdir}/scripts/make_graphs.py
doc-html-performance:
-@(chmod + ${doc_performance_script}; \
${doc_performance_script} ${top_srcdir} \
${glibcxx_builddir}/testsuite \
${top_srcdir}/testsuite/data/make_graph_htmls.xml \
${top_srcdir}/testsuite/data/make_graph_test_infos.xml local g++)
# Docbook configuration. # Docbook configuration.
...@@ -68,6 +74,7 @@ doc-html-performance: ...@@ -68,6 +74,7 @@ doc-html-performance:
# docbook-style-xsl # docbook-style-xsl
# emacs-nxml-mode # emacs-nxml-mode
# xmlto passivetex # xmlto passivetex
docbook_outdir = ${glibcxx_builddir}/doc/docbook
xml_srcdir = ${glibcxx_srcdir}/doc/xml xml_srcdir = ${glibcxx_srcdir}/doc/xml
xml_sources = \ xml_sources = \
${xml_srcdir}/spine.xml \ ${xml_srcdir}/spine.xml \
...@@ -112,6 +119,7 @@ xml_sources = \ ...@@ -112,6 +119,7 @@ xml_sources = \
${xml_srcdir}/manual/support.xml \ ${xml_srcdir}/manual/support.xml \
${xml_srcdir}/manual/test.xml \ ${xml_srcdir}/manual/test.xml \
${xml_srcdir}/manual/using.xml \ ${xml_srcdir}/manual/using.xml \
${xml_srcdir}/manual/using_exceptions.xml \
${xml_srcdir}/manual/utilities.xml \ ${xml_srcdir}/manual/utilities.xml \
${xml_srcdir}/manual/appendix_free.xml \ ${xml_srcdir}/manual/appendix_free.xml \
${xml_srcdir}/manual/appendix_contributing.xml \ ${xml_srcdir}/manual/appendix_contributing.xml \
...@@ -137,17 +145,17 @@ XSL_HTML_STYLE = $(XSL_STYLE_DIR)/xhtml/chunk.xsl ...@@ -137,17 +145,17 @@ XSL_HTML_STYLE = $(XSL_STYLE_DIR)/xhtml/chunk.xsl
#XSL_HTML_SINGLE_STYLE = $(XSL_STYLE_DIR)/xhtml/onechunk.xsl #XSL_HTML_SINGLE_STYLE = $(XSL_STYLE_DIR)/xhtml/onechunk.xsl
XSL_HTML_SINGLE_STYLE = $(XSL_STYLE_DIR)/xhtml/docbook.xsl XSL_HTML_SINGLE_STYLE = $(XSL_STYLE_DIR)/xhtml/docbook.xsl
${glibcxx_builddir}/doc/html: ${docbook_outdir}/html:
mkdir ${glibcxx_builddir}/doc/html mkdir -p ${docbook_outdir}/html
${glibcxx_builddir}/doc/pdf: ${docbook_outdir}/pdf:
mkdir ${glibcxx_builddir}/doc/pdf mkdir -p ${docbook_outdir}/pdf
${glibcxx_builddir}/doc/fo: ${docbook_outdir}/fo:
mkdir ${glibcxx_builddir}/doc/fo mkdir -p ${docbook_outdir}/fo
${glibcxx_builddir}/doc/xml: ${docbook_outdir}/xml:
mkdir ${glibcxx_builddir}/doc/xml mkdir -p ${docbook_outdir}/xml
# Validate existing XML structure. # Validate existing XML structure.
XMLLINT = xmllint XMLLINT = xmllint
...@@ -156,57 +164,53 @@ XMLLINT = xmllint ...@@ -156,57 +164,53 @@ XMLLINT = xmllint
LINT_FLAGS = --postvalid --debug --xinclude --noent --noblanks --nonet --noout LINT_FLAGS = --postvalid --debug --xinclude --noent --noblanks --nonet --noout
VALID_FLAGS = --dtdvalid http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd VALID_FLAGS = --dtdvalid http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd
XMLLINT_FLAGS = $(LINT_FLAGS) $(VALID_FLAGS) XMLLINT_FLAGS = $(LINT_FLAGS) $(VALID_FLAGS)
doc-xml-validate: $(xml_sources) doc-xml-validate-docbook: $(xml_sources)
@echo "Generating XML validation log..." @echo "Generating XML validation log..."
$(XMLLINT) $(XMLLINT_FLAGS) ${top_srcdir}/doc/xml/spine.xml $(XMLLINT) $(XMLLINT_FLAGS) ${top_srcdir}/doc/xml/spine.xml
doc-xml-single: $(xml_sources) ${glibcxx_builddir}/doc/xml doc-xml-single-docbook: $(xml_sources) ${docbook_outdir}/xml
@echo "Generating XML single..." @echo "Generating XML single..."
$(XMLLINT) --xinclude --noent --noblanks \ $(XMLLINT) --xinclude --noent --noblanks \
-o ${glibcxx_builddir}/doc/xml/spine-single.xml \ -o ${docbook_outdir}/xml/spine-single.xml \
${top_srcdir}/doc/xml/spine.xml ${top_srcdir}/doc/xml/spine.xml
# HTML, index plus chapters # HTML, index plus chapters
doc-html: $(xml_sources) ${glibcxx_builddir}/doc/html doc-html-docbook: $(xml_sources) ${docbook_outdir}/html
@echo "Generating html files..." @echo "Generating html files..."
$(XSLTPROC) $(XSLTPROC_FLAGS) -o ${glibcxx_builddir}/doc/html/ \ $(XSLTPROC) $(XSLTPROC_FLAGS) -o ${docbook_outdir}/html/ \
$(XSL_HTML_STYLE) ${top_srcdir}/doc/xml/spine.xml $(XSL_HTML_STYLE) ${top_srcdir}/doc/xml/spine.xml
# HTML, all one page # HTML, all one page
doc-html-single: $(xml_sources) ${glibcxx_builddir}/doc/html doc-html-single-docbook: $(xml_sources) ${docbook_outdir}/html
@echo "Generating html single file..." @echo "Generating html single file..."
$(XSLTPROC) $(XSLTPROC_FLAGS) -o ${glibcxx_builddir}/doc/html/ \ $(XSLTPROC) $(XSLTPROC_FLAGS) -o ${docbook_outdir}/html/ \
$(XSL_HTML_SINGLE_STYLE) ${top_srcdir}/doc/xml/spine.xml $(XSL_HTML_SINGLE_STYLE) ${top_srcdir}/doc/xml/spine.xml
# FO # FO
doc-fo: $(xml_sources) ${glibcxx_builddir}/doc/fo doc-fo-docbook: $(xml_sources) ${docbook_outdir}/fo
@echo "Generating FO files..." @echo "Generating FO files..."
$(XSLTPROC) $(XSLTPROC_FLAGS) -o ${glibcxx_builddir}/doc/fo/spine.fo \ $(XSLTPROC) $(XSLTPROC_FLAGS) -o ${docbook_outdir}/fo/spine.fo \
$(XSL_FO_STYLE) ${top_srcdir}/doc/xml/spine.xml $(XSL_FO_STYLE) ${top_srcdir}/doc/xml/spine.xml
# PDF
# Points to current best xml to PDF generation process.
doc-pdf: doc-pdf-dblatex
# PDF 1 # PDF 1
# fop # fop
FOP = fop FOP = fop
FOP_FLAGS = -d -r FOP_FLAGS = -d -r
doc-pdf-fop-xml: $(xml_sources) ${glibcxx_builddir}/doc/pdf doc-pdf-fop-xml-docbook: $(xml_sources) ${glibcxx_builddir}/doc/pdf
@echo "Generating pdf fop files from xml..." @echo "Generating pdf fop files from xml..."
$(FOP) $(FOP_FLAGS) -xml ${top_srcdir}/doc/xml/spine.xml \ $(FOP) $(FOP_FLAGS) -xml ${top_srcdir}/doc/xml/spine.xml \
-xsl $(XSL_FO_STYLE) -pdf ${glibcxx_builddir}/doc/pdf/spine.pdf -xsl $(XSL_FO_STYLE) -pdf ${docbook_outdir}/pdf/spine.pdf
doc-pdf-fop-fo: $(xml_sources) ${glibcxx_builddir}/doc/pdf doc-fo doc-pdf-fop-fo-docbook: $(xml_sources) ${glibcxx_builddir}/doc/pdf doc-fo
@echo "Generating pdf fop files from fo..." @echo "Generating pdf fop files from fo..."
$(FOP) $(FOP_FLAGS) -fo ${glibcxx_builddir}/doc/fo/spine.fo \ $(FOP) $(FOP_FLAGS) -fo ${docbook_outdir}/fo/spine.fo \
-pdf ${glibcxx_builddir}/doc/pdf/spine.pdf -pdf ${docbook_outdir}/pdf/spine.pdf
# PDF 2 # PDF 2
# xmlto # xmlto
XML2PDF = xmlto XML2PDF = xmlto
XML2PDF_FLAGS = -v pdf --skip-validation -o pdf XML2PDF_FLAGS = -v pdf --skip-validation -o pdf
doc-pdf-xmlto: $(xml_sources) ${glibcxx_builddir}/doc/pdf doc-pdf-xmlto-docbook: $(xml_sources) ${docbook_outdir}/pdf
@echo "Generating pdf xmlto files..." @echo "Generating pdf xmlto files..."
$(XML2PDF) $(XML2PDF_FLAGS) ${top_srcdir}/doc/xml/spine.xml $(XML2PDF) $(XML2PDF_FLAGS) ${top_srcdir}/doc/xml/spine.xml
...@@ -214,26 +218,37 @@ doc-pdf-xmlto: $(xml_sources) ${glibcxx_builddir}/doc/pdf ...@@ -214,26 +218,37 @@ doc-pdf-xmlto: $(xml_sources) ${glibcxx_builddir}/doc/pdf
# xmlroff # xmlroff
XMLROFF = xmlroff XMLROFF = xmlroff
XMLROFF_FLAGS = --format=pdf --backend=cairo --warn=1 --debug=1 --continue XMLROFF_FLAGS = --format=pdf --backend=cairo --warn=1 --debug=1 --continue
doc-pdf-xmlroff: $(xml_sources) doc-fo doc-pdf-xmlroff-docbook: $(xml_sources) doc-fo
@echo "Generating pdf xmlroff files..." @echo "Generating pdf xmlroff files..."
$(XMLROFF) $(XMLROFF_FLAGS) ${glibcxx_builddir}/doc/fo/spine.fo $(XMLROFF) $(XMLROFF_FLAGS) ${docbook_outdir}/fo/spine.fo
# PDF 4 # PDF 4
# prince # prince
PRINCE = prince PRINCE = prince
PRINCE_FLAGS = --log prince.log -o pdf/spine.pdf PRINCE_FLAGS = --log prince.log -o pdf/spine.pdf
doc-pdf-prince: $(xml_sources) ${glibcxx_builddir}/doc/pdf doc-pdf-prince-docbook: $(xml_sources) ${docbook_outdir}/pdf
@echo "Generating pdf prince files..." @echo "Generating pdf prince files..."
$(PRINCE) $(PRINCE_FLAGS) ${top_srcdir}/doc/xml/spine.xml $(PRINCE) $(PRINCE_FLAGS) ${top_srcdir}/xml/spine.xml
# PDF 5 # PDF 5
# dblatex # dblatex
DBLATEX_FLAGS = --dump --verbose --pdf -o pdf/manual.pdf DBLATEX_FLAGS = --dump --verbose --pdf -o ${docbook_outdir}/pdf/manual.pdf
doc-pdf-dblatex: $(xml_sources) ${glibcxx_builddir}/doc/pdf doc-pdf-dblatex-docbook: $(xml_sources) ${docbook_outdir}/pdf
@echo "Generating pdf dblatex files..." @echo "Generating pdf dblatex files..."
dblatex $(DBLATEX_FLAGS) ${top_srcdir}/doc/xml/spine.xml dblatex $(DBLATEX_FLAGS) ${top_srcdir}/doc/xml/spine.xml
# Performance doc and graph configuration.
# Assumes pychart, beautiful soup installed.
# Generates the plots and graphs for performance testing.
doc_performance_script=${top_srcdir}/scripts/make_graphs.py
doc-html-performance:
-@(chmod + ${doc_performance_script}; \
${doc_performance_script} ${top_srcdir} \
${glibcxx_builddir}/testsuite \
${top_srcdir}/testsuite/data/make_graph_htmls.xml \
${top_srcdir}/testsuite/data/make_graph_test_infos.xml local g++)
.PHONY: doc-doxygen-html doc-doxygen-man doc-performance .PHONY: doc-doxygen-html doc-doxygen-man doc-performance
# By adding these files here, automake will remove them for 'make clean' # By adding these files here, automake will remove them for 'make clean'
...@@ -241,4 +256,4 @@ CLEANFILES = *.log ...@@ -241,4 +256,4 @@ CLEANFILES = *.log
# To remove directories. # To remove directories.
clean-local: clean-local:
rm -rf man html pdf fo doxygen xml rm -rf man html pdf fo xml doxygen docbook
...@@ -265,13 +265,8 @@ AM_CPPFLAGS = $(GLIBCXX_INCLUDES) ...@@ -265,13 +265,8 @@ AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
# Doxygen configuration # Doxygen configuration
# Assumes doxygen, graphviz (with dot) installed # Assumes doxygen, graphviz (with dot) installed
doc_doxygen_script = ${top_srcdir}/scripts/run_doxygen doxygen_script = ${top_srcdir}/scripts/run_doxygen
doxygen_xmldir = ${glibcxx_builddir}/doc/doxygen/xml doxygen_outdir = ${glibcxx_builddir}/doc/doxygen
# Performance doc and graph configuration.
# Assumes pychart, beautiful soup installed.
# Generates the plots and graphs for performance testing.
doc_performance_script = ${top_srcdir}/scripts/make_graphs.py
# Docbook configuration. # Docbook configuration.
# Assumes # Assumes
...@@ -279,6 +274,7 @@ doc_performance_script = ${top_srcdir}/scripts/make_graphs.py ...@@ -279,6 +274,7 @@ doc_performance_script = ${top_srcdir}/scripts/make_graphs.py
# docbook-style-xsl # docbook-style-xsl
# emacs-nxml-mode # emacs-nxml-mode
# xmlto passivetex # xmlto passivetex
docbook_outdir = ${glibcxx_builddir}/doc/docbook
xml_srcdir = ${glibcxx_srcdir}/doc/xml xml_srcdir = ${glibcxx_srcdir}/doc/xml
xml_sources = \ xml_sources = \
${xml_srcdir}/spine.xml \ ${xml_srcdir}/spine.xml \
...@@ -323,6 +319,7 @@ xml_sources = \ ...@@ -323,6 +319,7 @@ xml_sources = \
${xml_srcdir}/manual/support.xml \ ${xml_srcdir}/manual/support.xml \
${xml_srcdir}/manual/test.xml \ ${xml_srcdir}/manual/test.xml \
${xml_srcdir}/manual/using.xml \ ${xml_srcdir}/manual/using.xml \
${xml_srcdir}/manual/using_exceptions.xml \
${xml_srcdir}/manual/utilities.xml \ ${xml_srcdir}/manual/utilities.xml \
${xml_srcdir}/manual/appendix_free.xml \ ${xml_srcdir}/manual/appendix_free.xml \
${xml_srcdir}/manual/appendix_contributing.xml \ ${xml_srcdir}/manual/appendix_contributing.xml \
...@@ -377,7 +374,12 @@ PRINCE_FLAGS = --log prince.log -o pdf/spine.pdf ...@@ -377,7 +374,12 @@ PRINCE_FLAGS = --log prince.log -o pdf/spine.pdf
# PDF 5 # PDF 5
# dblatex # dblatex
DBLATEX_FLAGS = --dump --verbose --pdf -o pdf/manual.pdf DBLATEX_FLAGS = --dump --verbose --pdf -o ${docbook_outdir}/pdf/manual.pdf
# Performance doc and graph configuration.
# Assumes pychart, beautiful soup installed.
# Generates the plots and graphs for performance testing.
doc_performance_script = ${top_srcdir}/scripts/make_graphs.py
# By adding these files here, automake will remove them for 'make clean' # By adding these files here, automake will remove them for 'make clean'
CLEANFILES = *.log CLEANFILES = *.log
...@@ -567,102 +569,117 @@ uninstall-am: ...@@ -567,102 +569,117 @@ uninstall-am:
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
uninstall uninstall-am uninstall uninstall-am
# Documentation Overview
#
# There are two main source materials for libstdc++ documentation.
# The first is the doxygen markup in libstdc++ sources. And the second
# is the docbook markup in doc/xml/. A third and more obscure option
# deals with charting performance tests.
# Default, points to current best sub-rule that is the best conversion.
# MAN
doc-man: doc-man-doxygen
# PDF
doc-pdf: doc-pdf-dblatex-docbook
# HTML
doc-html: doc-html-docbook
doc-html-doxygen: doc-html-doxygen:
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \ -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
builddir=`cd ..; ${PWD_COMMAND}`; \ builddir=`cd ..; ${PWD_COMMAND}`; \
${SHELL} ${doc_doxygen_script} \ ${SHELL} ${doxygen_script} \
--host_alias=${host_alias} --mode=html $${srcdir} $${builddir} YES) --host_alias=${host_alias} --mode=html $${srcdir} $${builddir} YES)
doc-man-doxygen: doc-man-doxygen:
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \ -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
builddir=`cd ..; ${PWD_COMMAND}`; \ builddir=`cd ..; ${PWD_COMMAND}`; \
${SHELL} ${doc_doxygen_script} \ ${SHELL} ${doxygen_script} \
--host_alias=${host_alias} --mode=man $${srcdir} $${builddir} YES) --host_alias=${host_alias} --mode=man $${srcdir} $${builddir} YES)
doc-xml-doxygen: doc-xml-doxygen:
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \ -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
builddir=`cd ..; ${PWD_COMMAND}`; \ builddir=`cd ..; ${PWD_COMMAND}`; \
${SHELL} ${doc_doxygen_script} \ ${SHELL} ${doxygen_script} \
--host_alias=${host_alias} --mode=xml $${srcdir} $${builddir} NO) --host_alias=${host_alias} --mode=xml $${srcdir} $${builddir} NO)
doc-xml-doxygen-single: doc-xml-doxygen
doc-xml-single-doxygen:
@echo "Generating doxygen xml single file..." @echo "Generating doxygen xml single file..."
$(XSLTPROC) ${doxygen_xmldir}/combine.xslt ${doxygen_xmldir}/spine.xml > ${doxygen_xmldir}/all.xml; $(XSLTPROC) ${doxygen_outdir}/xml/combine.xslt \
doc-html-performance: ${doxygen_outdir}/xml/spine.xml > ${doxygen_outdir}/xml/all.xml;
-@(chmod + ${doc_performance_script}; \
${doc_performance_script} ${top_srcdir} \
${glibcxx_builddir}/testsuite \
${top_srcdir}/testsuite/data/make_graph_htmls.xml \
${top_srcdir}/testsuite/data/make_graph_test_infos.xml local g++)
${glibcxx_builddir}/doc/html: ${docbook_outdir}/html:
mkdir ${glibcxx_builddir}/doc/html mkdir -p ${docbook_outdir}/html
${glibcxx_builddir}/doc/pdf: ${docbook_outdir}/pdf:
mkdir ${glibcxx_builddir}/doc/pdf mkdir -p ${docbook_outdir}/pdf
${glibcxx_builddir}/doc/fo: ${docbook_outdir}/fo:
mkdir ${glibcxx_builddir}/doc/fo mkdir -p ${docbook_outdir}/fo
${glibcxx_builddir}/doc/xml: ${docbook_outdir}/xml:
mkdir ${glibcxx_builddir}/doc/xml mkdir -p ${docbook_outdir}/xml
doc-xml-validate: $(xml_sources) doc-xml-validate-docbook: $(xml_sources)
@echo "Generating XML validation log..." @echo "Generating XML validation log..."
$(XMLLINT) $(XMLLINT_FLAGS) ${top_srcdir}/doc/xml/spine.xml $(XMLLINT) $(XMLLINT_FLAGS) ${top_srcdir}/doc/xml/spine.xml
doc-xml-single: $(xml_sources) ${glibcxx_builddir}/doc/xml doc-xml-single-docbook: $(xml_sources) ${docbook_outdir}/xml
@echo "Generating XML single..." @echo "Generating XML single..."
$(XMLLINT) --xinclude --noent --noblanks \ $(XMLLINT) --xinclude --noent --noblanks \
-o ${glibcxx_builddir}/doc/xml/spine-single.xml \ -o ${docbook_outdir}/xml/spine-single.xml \
${top_srcdir}/doc/xml/spine.xml ${top_srcdir}/doc/xml/spine.xml
# HTML, index plus chapters # HTML, index plus chapters
doc-html: $(xml_sources) ${glibcxx_builddir}/doc/html doc-html-docbook: $(xml_sources) ${docbook_outdir}/html
@echo "Generating html files..." @echo "Generating html files..."
$(XSLTPROC) $(XSLTPROC_FLAGS) -o ${glibcxx_builddir}/doc/html/ \ $(XSLTPROC) $(XSLTPROC_FLAGS) -o ${docbook_outdir}/html/ \
$(XSL_HTML_STYLE) ${top_srcdir}/doc/xml/spine.xml $(XSL_HTML_STYLE) ${top_srcdir}/doc/xml/spine.xml
# HTML, all one page # HTML, all one page
doc-html-single: $(xml_sources) ${glibcxx_builddir}/doc/html doc-html-single-docbook: $(xml_sources) ${docbook_outdir}/html
@echo "Generating html single file..." @echo "Generating html single file..."
$(XSLTPROC) $(XSLTPROC_FLAGS) -o ${glibcxx_builddir}/doc/html/ \ $(XSLTPROC) $(XSLTPROC_FLAGS) -o ${docbook_outdir}/html/ \
$(XSL_HTML_SINGLE_STYLE) ${top_srcdir}/doc/xml/spine.xml $(XSL_HTML_SINGLE_STYLE) ${top_srcdir}/doc/xml/spine.xml
# FO # FO
doc-fo: $(xml_sources) ${glibcxx_builddir}/doc/fo doc-fo-docbook: $(xml_sources) ${docbook_outdir}/fo
@echo "Generating FO files..." @echo "Generating FO files..."
$(XSLTPROC) $(XSLTPROC_FLAGS) -o ${glibcxx_builddir}/doc/fo/spine.fo \ $(XSLTPROC) $(XSLTPROC_FLAGS) -o ${docbook_outdir}/fo/spine.fo \
$(XSL_FO_STYLE) ${top_srcdir}/doc/xml/spine.xml $(XSL_FO_STYLE) ${top_srcdir}/doc/xml/spine.xml
doc-pdf-fop-xml-docbook: $(xml_sources) ${glibcxx_builddir}/doc/pdf
# PDF
# Points to current best xml to PDF generation process.
doc-pdf: doc-pdf-dblatex
doc-pdf-fop-xml: $(xml_sources) ${glibcxx_builddir}/doc/pdf
@echo "Generating pdf fop files from xml..." @echo "Generating pdf fop files from xml..."
$(FOP) $(FOP_FLAGS) -xml ${top_srcdir}/doc/xml/spine.xml \ $(FOP) $(FOP_FLAGS) -xml ${top_srcdir}/doc/xml/spine.xml \
-xsl $(XSL_FO_STYLE) -pdf ${glibcxx_builddir}/doc/pdf/spine.pdf -xsl $(XSL_FO_STYLE) -pdf ${docbook_outdir}/pdf/spine.pdf
doc-pdf-fop-fo: $(xml_sources) ${glibcxx_builddir}/doc/pdf doc-fo doc-pdf-fop-fo-docbook: $(xml_sources) ${glibcxx_builddir}/doc/pdf doc-fo
@echo "Generating pdf fop files from fo..." @echo "Generating pdf fop files from fo..."
$(FOP) $(FOP_FLAGS) -fo ${glibcxx_builddir}/doc/fo/spine.fo \ $(FOP) $(FOP_FLAGS) -fo ${docbook_outdir}/fo/spine.fo \
-pdf ${glibcxx_builddir}/doc/pdf/spine.pdf -pdf ${docbook_outdir}/pdf/spine.pdf
doc-pdf-xmlto: $(xml_sources) ${glibcxx_builddir}/doc/pdf doc-pdf-xmlto-docbook: $(xml_sources) ${docbook_outdir}/pdf
@echo "Generating pdf xmlto files..." @echo "Generating pdf xmlto files..."
$(XML2PDF) $(XML2PDF_FLAGS) ${top_srcdir}/doc/xml/spine.xml $(XML2PDF) $(XML2PDF_FLAGS) ${top_srcdir}/doc/xml/spine.xml
doc-pdf-xmlroff: $(xml_sources) doc-fo doc-pdf-xmlroff-docbook: $(xml_sources) doc-fo
@echo "Generating pdf xmlroff files..." @echo "Generating pdf xmlroff files..."
$(XMLROFF) $(XMLROFF_FLAGS) ${glibcxx_builddir}/doc/fo/spine.fo $(XMLROFF) $(XMLROFF_FLAGS) ${docbook_outdir}/fo/spine.fo
doc-pdf-prince: $(xml_sources) ${glibcxx_builddir}/doc/pdf doc-pdf-prince-docbook: $(xml_sources) ${docbook_outdir}/pdf
@echo "Generating pdf prince files..." @echo "Generating pdf prince files..."
$(PRINCE) $(PRINCE_FLAGS) ${top_srcdir}/doc/xml/spine.xml $(PRINCE) $(PRINCE_FLAGS) ${top_srcdir}/xml/spine.xml
doc-pdf-dblatex: $(xml_sources) ${glibcxx_builddir}/doc/pdf doc-pdf-dblatex-docbook: $(xml_sources) ${docbook_outdir}/pdf
@echo "Generating pdf dblatex files..." @echo "Generating pdf dblatex files..."
dblatex $(DBLATEX_FLAGS) ${top_srcdir}/doc/xml/spine.xml dblatex $(DBLATEX_FLAGS) ${top_srcdir}/doc/xml/spine.xml
doc-html-performance:
-@(chmod + ${doc_performance_script}; \
${doc_performance_script} ${top_srcdir} \
${glibcxx_builddir}/testsuite \
${top_srcdir}/testsuite/data/make_graph_htmls.xml \
${top_srcdir}/testsuite/data/make_graph_test_infos.xml local g++)
.PHONY: doc-doxygen-html doc-doxygen-man doc-performance .PHONY: doc-doxygen-html doc-doxygen-man doc-performance
# To remove directories. # To remove directories.
clean-local: clean-local:
rm -rf man html pdf fo doxygen xml rm -rf man html pdf fo xml doxygen docbook
# Tell versions [3.59,3.63) of GNU make to not export all variables. # Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded. # Otherwise a system limit (for SysV at least) may be exceeded.
......
...@@ -400,7 +400,7 @@ ...@@ -400,7 +400,7 @@
<para> <para>
If the only functions from <filename>libstdc++.a</filename> If the only functions from <filename>libstdc++.a</filename>
which you need are language support functions (those listed in which you need are language support functions (those listed in
<link linkend="manual.support">clause 18</link> of the <link linkend="std.support">clause 18</link> of the
standard, e.g., <function>new</function> and standard, e.g., <function>new</function> and
<function>delete</function>), then try linking against <function>delete</function>), then try linking against
<filename>libsupc++.a</filename>, which is a subset of <filename>libsupc++.a</filename>, which is a subset of
...@@ -896,7 +896,7 @@ ...@@ -896,7 +896,7 @@
<para> <para>
More information, including how to optionally enable/disable the More information, including how to optionally enable/disable the
checks, is available checks, is available
<link linkend="manual.diagnostics.concept_checking">here</link>. <link linkend="std.diagnostics.concept_checking">here</link>.
</para> </para>
</answer> </answer>
</qandaentry> </qandaentry>
...@@ -962,7 +962,7 @@ ...@@ -962,7 +962,7 @@
<answer id="a-list_size_on"> <answer id="a-list_size_on">
<para> <para>
See See
the <link linkend="manual.containers">Containers</link> the <link linkend="std.containers">Containers</link>
chapter. chapter.
</para> </para>
</answer> </answer>
......
<?xml version='1.0'?> <?xml version='1.0'?>
<!DOCTYPE part PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
[ ]> [ ]>
<part id="manual.algorithms" xreflabel="Algorithms"> <chapter id="std.algorithms" xreflabel="Algorithms">
<?dbhtml filename="algorithms.html"?> <?dbhtml filename="algorithms.html"?>
<partinfo> <chapterinfo>
<keywordset> <keywordset>
<keyword> <keyword>
ISO C++ ISO C++
...@@ -18,17 +18,15 @@ ...@@ -18,17 +18,15 @@
algorithm algorithm
</keyword> </keyword>
</keywordset> </keywordset>
</partinfo> </chapterinfo>
<title> <title>
Algorithms Algorithms
<indexterm><primary>Algorithms</primary></indexterm> <indexterm><primary>Algorithms</primary></indexterm>
</title> </title>
<preface>
<title></title>
<para> <para>
The neatest accomplishment of the algorithms chapter is that all the The neatest accomplishment of the algorithms sect1 is that all the
work is done via iterators, not containers directly. This means two work is done via iterators, not containers directly. This means two
important things: important things:
</para> </para>
...@@ -37,7 +35,8 @@ ...@@ -37,7 +35,8 @@
<para> <para>
Anything that behaves like an iterator can be used in one of Anything that behaves like an iterator can be used in one of
these algorithms. Raw pointers make great candidates, thus these algorithms. Raw pointers make great candidates, thus
built-in arrays are fine containers, as well as your own iterators. built-in arrays are fine containers, as well as your own
iterators.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
...@@ -48,41 +47,40 @@ ...@@ -48,41 +47,40 @@
a container, then anything outside that range is inviolate. a container, then anything outside that range is inviolate.
</para> </para>
</listitem> </listitem>
</orderedlist> </orderedlist>
<para> <para>
Even strings can be fed through the algorithms here, although the Even strings can be fed through the algorithms here, although the
string class has specialized versions of many of these functions string class has specialized versions of many of these functions
(for example, <code>string::find()</code>). Most of the examples (for example, <code>string::find()</code>). Most of the examples
on this page will use simple arrays of integers as a playground on this page will use simple arrays of integers as a playground
for algorithms, just to keep things simple. The use of for algorithms, just to keep things simple. The use of
<emphasis>N</emphasis> as a size in the examples is to keep <emphasis>N</emphasis> as a size in the examples is to keep things
things easy to read but probably won't be valid code. You can easy to read but probably won't be valid code. You can use wrappers
use wrappers such as those described in the <link such as those described in
linkend="manual.containers">containers chapter</link> to the <link linkend="std.containers">containers sect1</link> to keep
keep real code readable. real code readable.
</para> </para>
<para> <para>
The single thing that trips people up the most is the definition The single thing that trips people up the most is the definition
of <emphasis>range</emphasis> used with iterators; the famous of <emphasis>range</emphasis> used with iterators; the famous
&quot;past-the-end&quot; rule that everybody loves to hate. The &quot;past-the-end&quot; rule that everybody loves to hate. The
<link linkend="manual.iterators">iterators <link linkend="std.iterators">iterators sect1</link> of this
chapter</link> of this document has a complete explanation of document has a complete explanation of this simple rule that seems
this simple rule that seems to cause so much confusion. Once you to cause so much confusion. Once you
get <emphasis>range</emphasis> into your head (it's not that get <emphasis>range</emphasis> into your head (it's not that hard,
hard, honest!), then the algorithms are a cakewalk. honest!), then the algorithms are a cakewalk.
</para> </para>
</preface>
<!-- Chapter 01 : Non Modifying --> <!-- Sect1 01 : Non Modifying -->
<!-- Chapter 02 : Mutating --> <!-- Sect1 02 : Mutating -->
<chapter id="manual.algorithms.mutating" xreflabel="Mutating"> <sect1 id="std.algorithms.mutating" xreflabel="Mutating">
<title>Mutating</title> <title>Mutating</title>
<sect1 id="algorithms.mutating.swap" xreflabel="swap"> <sect2 id="algorithms.mutating.swap" xreflabel="swap">
<title><function>swap</function></title> <title><function>swap</function></title>
<sect2 id="algorithms.swap.specializations" xreflabel="Specializations"> <sect3 id="algorithms.swap.specializations" xreflabel="Specializations">
<title>Specializations</title> <title>Specializations</title>
<para>If you call <code> std::swap(x,y); </code> where x and y are standard <para>If you call <code> std::swap(x,y); </code> where x and y are standard
...@@ -98,10 +96,10 @@ ...@@ -98,10 +96,10 @@
internal pointers to storage need to be exchanged. internal pointers to storage need to be exchanged.
</para> </para>
</sect3>
</sect2> </sect2>
</sect1> </sect1>
</chapter>
<!-- Chapter 03 : Sorting --> <!-- Sect1 03 : Sorting -->
</part> </chapter>
<sect1 id="manual.util.memory.allocator" xreflabel="Allocator"> <section id="std.util.memory.allocator" xreflabel="Allocator">
<?dbhtml filename="allocator.html"?> <?dbhtml filename="allocator.html"?>
<sect1info> <sectioninfo>
<keywordset> <keywordset>
<keyword> <keyword>
ISO C++ ISO C++
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
allocator allocator
</keyword> </keyword>
</keywordset> </keywordset>
</sect1info> </sectioninfo>
<title>Allocators</title> <title>Allocators</title>
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
management classes. management classes.
</para> </para>
<sect2 id="allocator.req"> <section id="allocator.req">
<title>Requirements</title> <title>Requirements</title>
<para> <para>
...@@ -85,9 +85,9 @@ ...@@ -85,9 +85,9 @@
<constant>[20.4 Memory]</constant>. <constant>[20.4 Memory]</constant>.
</para> </para>
</sect2> </section>
<sect2 id="allocator.design_issues"> <section id="allocator.design_issues">
<title>Design Issues</title> <title>Design Issues</title>
<para> <para>
...@@ -136,12 +136,12 @@ ...@@ -136,12 +136,12 @@
<function>abi::__cxa_atexit</function> is not recommended. <function>abi::__cxa_atexit</function> is not recommended.
</para> </para>
</sect2> </section>
<sect2 id="allocator.impl"> <section id="allocator.impl">
<title>Implementation</title> <title>Implementation</title>
<sect3> <section>
<title>Interface Design</title> <title>Interface Design</title>
<para> <para>
...@@ -163,9 +163,9 @@ ...@@ -163,9 +163,9 @@
may not be user-configurable. may not be user-configurable.
</para> </para>
</sect3> </section>
<sect3> <section>
<title>Selecting Default Allocation Policy</title> <title>Selecting Default Allocation Policy</title>
<para> <para>
...@@ -229,9 +229,9 @@ ...@@ -229,9 +229,9 @@
<classname>__gnu_cxx::new_allocator</classname>. <classname>__gnu_cxx::new_allocator</classname>.
</para> </para>
</sect3> </section>
<sect3> <section>
<title>Disabling Memory Caching</title> <title>Disabling Memory Caching</title>
<para> <para>
...@@ -281,11 +281,11 @@ ...@@ -281,11 +281,11 @@
cached allocations...). cached allocations...).
</para> </para>
</sect3> </section>
</sect2> </section>
<sect2 id="allocator.using"> <section id="allocator.using">
<title>Using a Specific Allocator</title> <title>Using a Specific Allocator</title>
<para> <para>
...@@ -303,9 +303,9 @@ ...@@ -303,9 +303,9 @@
<programlisting> <programlisting>
std::deque &lt;int, __gnu_cxx::debug_allocator&lt;std::allocator&lt;int&gt; &gt; &gt; debug_deque; std::deque &lt;int, __gnu_cxx::debug_allocator&lt;std::allocator&lt;int&gt; &gt; &gt; debug_deque;
</programlisting> </programlisting>
</sect2> </section>
<sect2 id="allocator.custom"> <section id="allocator.custom">
<title>Custom Allocators</title> <title>Custom Allocators</title>
<para> <para>
...@@ -321,9 +321,9 @@ ...@@ -321,9 +321,9 @@
<classname>new_allocator</classname>. <classname>new_allocator</classname>.
</para> </para>
</sect2> </section>
<sect2 id="allocator.ext"> <section id="allocator.ext">
<title>Extension Allocators</title> <title>Extension Allocators</title>
<para> <para>
...@@ -489,7 +489,7 @@ ...@@ -489,7 +489,7 @@
</para> </para>
</listitem> </listitem>
</orderedlist> </orderedlist>
</sect2> </section>
<bibliography id="allocator.biblio"> <bibliography id="allocator.biblio">
...@@ -615,4 +615,4 @@ ...@@ -615,4 +615,4 @@
</biblioentry> </biblioentry>
</bibliography> </bibliography>
</sect1> </section>
...@@ -1226,25 +1226,25 @@ xmllint --noout --valid <filename>xml/index.xml</filename> ...@@ -1226,25 +1226,25 @@ xmllint --noout --valid <filename>xml/index.xml</filename>
<para> <para>
The following Makefile rules generate (in order): an HTML The following Makefile rules generate (in order): an HTML
version of all the documentation, a PDF version of the same, a version of all the DocBook documentation, a PDF version of the same, a
single XML document, and the result of validating the entire XML single XML document, and the result of validating the entire XML
document. document.
</para> </para>
<para> <para>
<screen><userinput>make doc-html</userinput></screen> <screen><userinput>make doc-html-docbook</userinput></screen>
</para> </para>
<para> <para>
<screen><userinput>make doc-pdf</userinput></screen> <screen><userinput>make doc-pdf-docbook</userinput></screen>
</para> </para>
<para> <para>
<screen><userinput>make doc-xml-single</userinput></screen> <screen><userinput>make doc-xml-single-docbook</userinput></screen>
</para> </para>
<para> <para>
<screen><userinput>make doc-xml-validate</userinput></screen> <screen><userinput>make doc-xml-validate-docbook</userinput></screen>
</para> </para>
</sect3> </sect3>
...@@ -1477,6 +1477,44 @@ xmllint --noout --valid <filename>xml/index.xml</filename> ...@@ -1477,6 +1477,44 @@ xmllint --noout --valid <filename>xml/index.xml</filename>
</sect3> </sect3>
</sect2> </sect2>
<sect2 id="doc_style.combines">
<title>Combines</title>
<sect3 id="combines.rules">
<title>Generating Combines and Assemblages</title>
<para>
The following Makefile rules are defaults, and are usually
aliased to variable rules.
</para>
<para>
<screen><userinput>make doc-html</userinput></screen>
</para>
<para>
<screen><userinput>make doc-man</userinput></screen>
</para>
<para>
<screen><userinput>make doc-pdf</userinput></screen>
</para>
<para>
The following Makefile rules generate (in order): an HTML
version of all the DocBook documentation with links into an
local Doxygen cache, and a PDF version of the same.
</para>
<para>
<screen><userinput>make doc-html-combine</userinput></screen>
</para>
<para>
<screen><userinput>make doc-pdf-combine</userinput></screen>
</para>
</sect3>
</sect2>
</sect1> </sect1>
<sect1 id="contrib.design_notes" xreflabel="Design Notes"> <sect1 id="contrib.design_notes" xreflabel="Design Notes">
......
<sect1 id="manual.util.memory.auto_ptr" xreflabel="auto_ptr"> <section id="std.util.memory.auto_ptr" xreflabel="auto_ptr">
<?dbhtml filename="auto_ptr.html"?> <?dbhtml filename="auto_ptr.html"?>
<sect1info> <sectioninfo>
<keywordset> <keywordset>
<keyword> <keyword>
ISO C++ ISO C++
...@@ -10,11 +10,11 @@ ...@@ -10,11 +10,11 @@
auto_ptr auto_ptr
</keyword> </keyword>
</keywordset> </keywordset>
</sect1info> </sectioninfo>
<title>auto_ptr</title> <title>auto_ptr</title>
<sect2 id="auto_ptr.limitations"> <section id="auto_ptr.limitations">
<title>Limitations</title> <title>Limitations</title>
<para>Explaining all of the fun and delicious things that can <para>Explaining all of the fun and delicious things that can
...@@ -79,14 +79,14 @@ ...@@ -79,14 +79,14 @@
own <code>auto_array_ptr</code> for that situation (in fact, this has own <code>auto_array_ptr</code> for that situation (in fact, this has
been done many times; check the mailing lists, Usenet, Boost, etc). been done many times; check the mailing lists, Usenet, Boost, etc).
</para> </para>
</sect2> </section>
<sect2 id="auto_ptr.using"> <section id="auto_ptr.using">
<title>Use in Containers</title> <title>Use in Containers</title>
<para> <para>
</para> </para>
<para>All of the <link linkend="manual.containers">containers</link> <para>All of the <link linkend="std.containers">containers</link>
described in the standard library require their contained types described in the standard library require their contained types
to have, among other things, a copy constructor like this: to have, among other things, a copy constructor like this:
</para> </para>
...@@ -128,6 +128,6 @@ ...@@ -128,6 +128,6 @@
<para> <para>
Should you try this with the checks enabled, you will see an error. Should you try this with the checks enabled, you will see an error.
</para> </para>
</sect2> </section>
</sect1> </section>
<sect1 id="manual.localization.facet.codecvt" xreflabel="codecvt"> <section id="std.localization.facet.codecvt" xreflabel="codecvt">
<?dbhtml filename="codecvt.html"?> <?dbhtml filename="codecvt.html"?>
<sect1info> <sectioninfo>
<keywordset> <keywordset>
<keyword> <keyword>
ISO C++ ISO C++
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
codecvt codecvt
</keyword> </keyword>
</keywordset> </keywordset>
</sect1info> </sectioninfo>
<title>codecvt</title> <title>codecvt</title>
...@@ -30,7 +30,7 @@ specializations for wide and narrow characters and the ...@@ -30,7 +30,7 @@ specializations for wide and narrow characters and the
implementation-provided extended functionality are given. implementation-provided extended functionality are given.
</para> </para>
<sect2 id="facet.codecvt.req"> <section id="facet.codecvt.req">
<title>Requirements</title> <title>Requirements</title>
<para> <para>
...@@ -108,12 +108,12 @@ Two: The required conversions, by specifying mbstate_t as the third ...@@ -108,12 +108,12 @@ Two: The required conversions, by specifying mbstate_t as the third
template parameter, imply an implementation strategy that is mostly template parameter, imply an implementation strategy that is mostly
(or wholly) based on the underlying C library, and the functions (or wholly) based on the underlying C library, and the functions
mcsrtombs and wcsrtombs in particular.</para> mcsrtombs and wcsrtombs in particular.</para>
</sect2> </section>
<sect2 id="facet.codecvt.design"> <section id="facet.codecvt.design">
<title>Design</title> <title>Design</title>
<sect3 id="codecvt.design.wchar_t_size"> <section id="codecvt.design.wchar_t_size">
<title><type>wchar_t</type> Size</title> <title><type>wchar_t</type> Size</title>
<para> <para>
...@@ -131,9 +131,9 @@ mcsrtombs and wcsrtombs in particular.</para> ...@@ -131,9 +131,9 @@ mcsrtombs and wcsrtombs in particular.</para>
<para> <para>
Thus, portable C++ code cannot assume a byte size (or endianness) either. Thus, portable C++ code cannot assume a byte size (or endianness) either.
</para> </para>
</sect3> </section>
<sect3 id="codecvt.design.unicode"> <section id="codecvt.design.unicode">
<title>Support for Unicode</title> <title>Support for Unicode</title>
<para> <para>
Probably the most frequently asked question about code conversion Probably the most frequently asked question about code conversion
...@@ -236,9 +236,9 @@ mechanism may be required. ...@@ -236,9 +236,9 @@ mechanism may be required.
external types will need to be known. external types will need to be known.
</para></listitem> </para></listitem>
</itemizedlist> </itemizedlist>
</sect3> </section>
<sect3 id="codecvt.design.issues"> <section id="codecvt.design.issues">
<title>Other Issues</title> <title>Other Issues</title>
<para> <para>
In addition, multi-threaded and multi-locale environments also impact In addition, multi-threaded and multi-locale environments also impact
...@@ -284,11 +284,11 @@ on GNU/Linux) and whatever the currently selected locale for the ...@@ -284,11 +284,11 @@ on GNU/Linux) and whatever the currently selected locale for the
LC_CTYPE category implements. LC_CTYPE category implements.
</para> </para>
</sect3> </section>
</sect2> </section>
<sect2 id="facet.codecvt.impl"> <section id="facet.codecvt.impl">
<title>Implementation</title> <title>Implementation</title>
<para> <para>
...@@ -432,9 +432,9 @@ external character type, encoding_state&gt; is consistent with other ...@@ -432,9 +432,9 @@ external character type, encoding_state&gt; is consistent with other
codecvt usage. codecvt usage.
</para> </para>
</sect2> </section>
<sect2 id="facet.codecvt.use"> <section id="facet.codecvt.use">
<title>Use</title> <title>Use</title>
<para>A conversions involving string literal.</para> <para>A conversions involving string literal.</para>
...@@ -477,9 +477,9 @@ codecvt usage. ...@@ -477,9 +477,9 @@ codecvt usage.
VERIFY( ito_next == i_arr + size ); VERIFY( ito_next == i_arr + size );
</programlisting> </programlisting>
</sect2> </section>
<sect2 id="facet.codecvt.future"> <section id="facet.codecvt.future">
<title>Future</title> <title>Future</title>
<itemizedlist> <itemizedlist>
<listitem> <listitem>
...@@ -532,7 +532,7 @@ codecvt usage. ...@@ -532,7 +532,7 @@ codecvt usage.
</itemizedlist> </itemizedlist>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</sect2> </section>
<bibliography id="facet.codecvt.biblio"> <bibliography id="facet.codecvt.biblio">
...@@ -702,4 +702,4 @@ codecvt usage. ...@@ -702,4 +702,4 @@ codecvt usage.
</bibliography> </bibliography>
</sect1> </section>
...@@ -269,7 +269,7 @@ ...@@ -269,7 +269,7 @@
<varlistentry><term><code>--enable-concept-checks</code></term> <varlistentry><term><code>--enable-concept-checks</code></term>
<listitem><para>This turns on additional compile-time checks for instantiated <listitem><para>This turns on additional compile-time checks for instantiated
library templates, in the form of specialized templates, library templates, in the form of specialized templates,
<link linkend="manual.diagnostics.concept_checking">described here</link>. They <link linkend="std.diagnostics.concept_checking">described here</link>. They
can help users discover when they break the rules of the STL, before can help users discover when they break the rules of the STL, before
their programs run. their programs run.
</para> </para>
......
<?xml version='1.0'?> <?xml version='1.0'?>
<!DOCTYPE part PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
[ ]> [ ]>
<part id="manual.containers" xreflabel="Containers"> <chapter id="std.containers" xreflabel="Containers">
<?dbhtml filename="containers.html"?> <?dbhtml filename="containers.html"?>
<partinfo> <chapterinfo>
<keywordset> <keywordset>
<keyword> <keyword>
ISO C++ ISO C++
...@@ -15,22 +15,22 @@ ...@@ -15,22 +15,22 @@
library library
</keyword> </keyword>
</keywordset> </keywordset>
</partinfo> </chapterinfo>
<title> <title>
Containers Containers
<indexterm><primary>Containers</primary></indexterm> <indexterm><primary>Containers</primary></indexterm>
</title> </title>
<!-- Chapter 01 : Sequences --> <!-- Sect1 01 : Sequences -->
<chapter id="manual.containers.sequences" xreflabel="Sequences"> <sect1 id="std.containers.sequences" xreflabel="Sequences">
<?dbhtml filename="sequences.html"?> <?dbhtml filename="sequences.html"?>
<title>Sequences</title> <title>Sequences</title>
<sect1 id="containers.sequences.list" xreflabel="list"> <sect2 id="containers.sequences.list" xreflabel="list">
<?dbhtml filename="list.html"?> <?dbhtml filename="list.html"?>
<title>list</title> <title>list</title>
<sect2 id="sequences.list.size" xreflabel="list::size() is O(n)"> <sect3 id="sequences.list.size" xreflabel="list::size() is O(n)">
<title>list::size() is O(n)</title> <title>list::size() is O(n)</title>
<para> <para>
Yes it is, and that's okay. This is a decision that we preserved Yes it is, and that's okay. This is a decision that we preserved
...@@ -78,15 +78,15 @@ ...@@ -78,15 +78,15 @@
... ...
</programlisting> </programlisting>
</blockquote> </blockquote>
</sect2> </sect3>
</sect1> </sect2>
<sect1 id="containers.sequences.vector" xreflabel="vector"> <sect2 id="containers.sequences.vector" xreflabel="vector">
<?dbhtml filename="vector.html"?> <?dbhtml filename="vector.html"?>
<title>vector</title> <title>vector</title>
<para> <para>
</para> </para>
<sect2 id="sequences.vector.management" xreflabel="Space Overhead Management"> <sect3 id="sequences.vector.management" xreflabel="Space Overhead Management">
<title>Space Overhead Management</title> <title>Space Overhead Management</title>
<para> <para>
In <ulink In <ulink
...@@ -103,15 +103,15 @@ ...@@ -103,15 +103,15 @@
url="http://gcc.gnu.org/ml/libstdc++/2002-07/msg00111.html">here</ulink>. url="http://gcc.gnu.org/ml/libstdc++/2002-07/msg00111.html">here</ulink>.
</para> </para>
</sect2></sect1> </sect3></sect2>
</chapter> </sect1>
<!-- Chapter 02 : Associative --> <!-- Sect1 02 : Associative -->
<chapter id="manual.containers.associative" xreflabel="Associative"> <sect1 id="std.containers.associative" xreflabel="Associative">
<?dbhtml filename="associative.html"?> <?dbhtml filename="associative.html"?>
<title>Associative</title> <title>Associative</title>
<sect1 id="containers.associative.insert_hints" xreflabel="Insertion Hints"> <sect2 id="containers.associative.insert_hints" xreflabel="Insertion Hints">
<title>Insertion Hints</title> <title>Insertion Hints</title>
<para> <para>
Section [23.1.2], Table 69, of the C++ standard lists this Section [23.1.2], Table 69, of the C++ standard lists this
...@@ -216,13 +216,13 @@ ...@@ -216,13 +216,13 @@
point to the correct place, then no further local searching is point to the correct place, then no further local searching is
done; the search begins from scratch in logarithmic time. done; the search begins from scratch in logarithmic time.
</para> </para>
</sect1> </sect2>
<sect1 id="containers.associative.bitset" xreflabel="bitset"> <sect2 id="containers.associative.bitset" xreflabel="bitset">
<?dbhtml filename="bitset.html"?> <?dbhtml filename="bitset.html"?>
<title>bitset</title> <title>bitset</title>
<sect2 id="associative.bitset.size_variable" xreflabel="Variable"> <sect3 id="associative.bitset.size_variable" xreflabel="Variable">
<title>Size Variable</title> <title>Size Variable</title>
<para> <para>
No, you cannot write code of the form No, you cannot write code of the form
...@@ -245,7 +245,7 @@ ...@@ -245,7 +245,7 @@
<para> <para>
There are a couple of ways to handle this kind of thing. Please There are a couple of ways to handle this kind of thing. Please
consider all of them before passing judgement. They include, in consider all of them before passing judgement. They include, in
no particular order: no chaptericular order:
</para> </para>
<itemizedlist> <itemizedlist>
<listitem><para>A very large N in <code>bitset&lt;N&gt;</code>.</para></listitem> <listitem><para>A very large N in <code>bitset&lt;N&gt;</code>.</para></listitem>
...@@ -329,8 +329,8 @@ ...@@ -329,8 +329,8 @@
<link linkend="manual.ext.containers.sgi">some extensions</link>. <link linkend="manual.ext.containers.sgi">some extensions</link>.
</para> </para>
</sect2> </sect3>
<sect2 id="associative.bitset.type_string" xreflabel="Type String"> <sect3 id="associative.bitset.type_string" xreflabel="Type String">
<title>Type String</title> <title>Type String</title>
<para> <para>
</para> </para>
...@@ -357,17 +357,17 @@ ...@@ -357,17 +357,17 @@
<programlisting> <programlisting>
std::bitset&lt;5&gt; b ( <quote>10110</quote> ); // invalid std::bitset&lt;5&gt; b ( <quote>10110</quote> ); // invalid
</programlisting> </programlisting>
</sect3>
</sect2> </sect2>
</sect1>
</chapter> </sect1>
<!-- Chapter 03 : Interacting with C --> <!-- Sect1 03 : Interacting with C -->
<chapter id="manual.containers.c" xreflabel="Interacting with C"> <sect1 id="std.containers.c" xreflabel="Interacting with C">
<?dbhtml filename="containers_and_c.html"?> <?dbhtml filename="containers_and_c.html"?>
<title>Interacting with C</title> <title>Interacting with C</title>
<sect1 id="containers.c.vs_array" xreflabel="Containers vs. Arrays"> <sect2 id="containers.c.vs_array" xreflabel="Containers vs. Arrays">
<title>Containers vs. Arrays</title> <title>Containers vs. Arrays</title>
<para> <para>
You're writing some code and can't decide whether to use builtin You're writing some code and can't decide whether to use builtin
...@@ -464,8 +464,8 @@ template&lt;typename T, unsigned int sz&gt; ...@@ -464,8 +464,8 @@ template&lt;typename T, unsigned int sz&gt;
<para> <para>
looks just weird! Hint: unused parameters can be left nameless. looks just weird! Hint: unused parameters can be left nameless.
</para> </para>
</sect1> </sect2>
</chapter> </sect1>
</part> </chapter>
<sect1 id="manual.localization.facet.ctype" xreflabel="ctype"> <section id="std.localization.facet.ctype" xreflabel="ctype">
<?dbhtml filename="ctype.html"?> <?dbhtml filename="ctype.html"?>
<sect1info> <sectioninfo>
<keywordset> <keywordset>
<keyword> <keyword>
ISO C++ ISO C++
...@@ -10,14 +10,14 @@ ...@@ -10,14 +10,14 @@
ctype ctype
</keyword> </keyword>
</keywordset> </keywordset>
</sect1info> </sectioninfo>
<title>ctype</title> <title>ctype</title>
<sect2 id="facet.ctype.impl"> <section id="facet.ctype.impl">
<title>Implementation</title> <title>Implementation</title>
<sect3> <section>
<title>Specializations</title> <title>Specializations</title>
<para> <para>
...@@ -57,10 +57,10 @@ Neither of these two required specializations deals with Unicode ...@@ -57,10 +57,10 @@ Neither of these two required specializations deals with Unicode
characters. characters.
</para> </para>
</sect3> </section>
</sect2> </section>
<sect2 id="facet.ctype.future"> <section id="facet.ctype.future">
<title>Future</title> <title>Future</title>
...@@ -114,7 +114,7 @@ characters. ...@@ -114,7 +114,7 @@ characters.
</itemizedlist> </itemizedlist>
</sect2> </section>
<bibliography id="facet.ctype.biblio"> <bibliography id="facet.ctype.biblio">
...@@ -236,4 +236,4 @@ characters. ...@@ -236,4 +236,4 @@ characters.
</bibliography> </bibliography>
</sect1> </section>
<?xml version='1.0'?> <?xml version='1.0'?>
<!DOCTYPE part PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
[ ]> [ ]>
<part id="manual.diagnostics" xreflabel="Diagnostics"> <chapter id="std.diagnostics" xreflabel="Diagnostics">
<?dbhtml filename="diagnostics.html"?> <?dbhtml filename="diagnostics.html"?>
<partinfo> <chapterinfo>
<keywordset> <keywordset>
<keyword> <keyword>
ISO C++ ISO C++
...@@ -15,18 +15,18 @@ ...@@ -15,18 +15,18 @@
library library
</keyword> </keyword>
</keywordset> </keywordset>
</partinfo> </chapterinfo>
<title> <title>
Diagnostics Diagnostics
<indexterm><primary>Diagnostics</primary></indexterm> <indexterm><primary>Diagnostics</primary></indexterm>
</title> </title>
<chapter id="manual.diagnostics.exceptions" xreflabel="Exceptions"> <sect1 id="std.diagnostics.exceptions" xreflabel="Exceptions">
<?dbhtml filename="exceptions.html"?> <?dbhtml filename="exceptions.html"?>
<title>Exceptions</title> <title>Exceptions</title>
<sect1 id="manual.diagnostics.exceptions.hierarchy" xreflabel="Exception Classes"> <sect2 id="std.diagnostics.exceptions.hierarchy" xreflabel="Exception Classes">
<title>Exception Classes</title> <title>Exception Classes</title>
<para> <para>
All exception objects are defined in one of the standard header All exception objects are defined in one of the standard header
...@@ -47,8 +47,8 @@ ...@@ -47,8 +47,8 @@
found in the <ulink url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00460.html">source documentation</ulink>. found in the <ulink url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00460.html">source documentation</ulink>.
</para> </para>
</sect1> </sect2>
<sect1 id="manual.diagnostics.exceptions.data" xreflabel="Adding Data to Exceptions"> <sect2 id="std.diagnostics.exceptions.data" xreflabel="Adding Data to Exceptions">
<title>Adding Data to Exceptions</title> <title>Adding Data to Exceptions</title>
<para> <para>
The standard exception classes carry with them a single string as The standard exception classes carry with them a single string as
...@@ -70,10 +70,10 @@ ...@@ -70,10 +70,10 @@
}; };
</programlisting> </programlisting>
</sect1> </sect2>
</chapter> </sect1>
<chapter id="manual.diagnostics.concept_checking" xreflabel="Concept Checking"> <sect1 id="std.diagnostics.concept_checking" xreflabel="Concept Checking">
<title>Concept Checking</title> <title>Concept Checking</title>
<para> <para>
In 1999, SGI added <quote>concept checkers</quote> to their In 1999, SGI added <quote>concept checkers</quote> to their
...@@ -120,6 +120,6 @@ ...@@ -120,6 +120,6 @@
checking described above. checking described above.
</para> </para>
</chapter> </sect1>
</part> </chapter>
<?xml version='1.0'?> <?xml version='1.0'?>
<!DOCTYPE part PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
[ ]> [ ]>
<part id="manual.io" xreflabel="Input and Output"> <chapter id="std.io" xreflabel="Input and Output">
<?dbhtml filename="io.html"?> <?dbhtml filename="io.html"?>
<partinfo> <chapterinfo>
<keywordset> <keywordset>
<keyword> <keyword>
ISO C++ ISO C++
...@@ -15,15 +15,15 @@ ...@@ -15,15 +15,15 @@
library library
</keyword> </keyword>
</keywordset> </keywordset>
</partinfo> </chapterinfo>
<title> <title>
Input and Output Input and Output
<indexterm><primary>Input and Output</primary></indexterm> <indexterm><primary>Input and Output</primary></indexterm>
</title> </title>
<!-- Chapter 01 : Iostream Objects --> <!-- Sect1 01 : Iostream Objects -->
<chapter id="manual.io.objects" xreflabel="IO Objects"> <sect1 id="std.io.objects" xreflabel="IO Objects">
<?dbhtml filename="iostream_objects.html"?> <?dbhtml filename="iostream_objects.html"?>
<title>Iostream Objects</title> <title>Iostream Objects</title>
...@@ -157,14 +157,14 @@ ...@@ -157,14 +157,14 @@
compile times will go down when there's less parsing work to do. compile times will go down when there's less parsing work to do.
</para> </para>
</chapter> </sect1>
<!-- Chapter 02 : Stream Buffers --> <!-- Sect1 02 : Stream Buffers -->
<chapter id="manual.io.streambufs" xreflabel="Stream Buffers"> <sect1 id="std.io.streambufs" xreflabel="Stream Buffers">
<?dbhtml filename="streambufs.html"?> <?dbhtml filename="streambufs.html"?>
<title>Stream Buffers</title> <title>Stream Buffers</title>
<sect1 id="io.streambuf.derived" xreflabel="Derived streambuf Classes"> <sect2 id="io.streambuf.derived" xreflabel="Derived streambuf Classes">
<title>Derived streambuf Classes</title> <title>Derived streambuf Classes</title>
<para> <para>
</para> </para>
...@@ -227,11 +227,11 @@ ...@@ -227,11 +227,11 @@
Streambufs</ulink>. Streambufs</ulink>.
</para> </para>
</sect1> </sect2>
<sect1 id="io.streambuf.buffering" xreflabel="Buffering"> <sect2 id="io.streambuf.buffering" xreflabel="Buffering">
<title>Buffering</title> <title>Buffering</title>
<para>First, are you sure that you understand buffering? Particularly <para>First, are you sure that you understand buffering? Chaptericularly
the fact that C++ may not, in fact, have anything to do with it? the fact that C++ may not, in fact, have anything to do with it?
</para> </para>
<para>The rules for buffering can be a little odd, but they aren't any <para>The rules for buffering can be a little odd, but they aren't any
...@@ -320,21 +320,21 @@ ...@@ -320,21 +320,21 @@
changing those are system-dependent. changing those are system-dependent.
</para> </para>
</sect1> </sect2>
</chapter> </sect1>
<!-- Chapter 03 : Memory-based Streams --> <!-- Sect1 03 : Memory-based Streams -->
<chapter id="manual.io.memstreams" xreflabel="Memory Streams"> <sect1 id="std.io.memstreams" xreflabel="Memory Streams">
<?dbhtml filename="stringstreams.html"?> <?dbhtml filename="stringstreams.html"?>
<title>Memory Based Streams</title> <title>Memory Based Streams</title>
<sect1 id="manual.io.memstreams.compat" xreflabel="Compatibility strstream"> <sect2 id="std.io.memstreams.compat" xreflabel="Compatibility strstream">
<title>Compatibility With strstream</title> <title>Compatibility With strstream</title>
<para> <para>
</para> </para>
<para>Stringstreams (defined in the header <code>&lt;sstream&gt;</code>) <para>Stringstreams (defined in the header <code>&lt;sstream&gt;</code>)
are in this author's opinion one of the coolest things since are in this author's opinion one of the coolest things since
sliced time. An example of their use is in the Received Wisdom sliced time. An example of their use is in the Received Wisdom
section for Chapter 21 (Strings), section for Sect1 21 (Strings),
<link linkend="strings.string.Cstring"> describing how to <link linkend="strings.string.Cstring"> describing how to
format strings</link>. format strings</link>.
</para> </para>
...@@ -367,15 +367,15 @@ ...@@ -367,15 +367,15 @@
</para> </para>
</sect1> </sect2>
</chapter> </sect1>
<!-- Chapter 04 : File-based Streams --> <!-- Sect1 04 : File-based Streams -->
<chapter id="manual.io.filestreams" xreflabel="File Streams"> <sect1 id="std.io.filestreams" xreflabel="File Streams">
<?dbhtml filename="fstreams.html"?> <?dbhtml filename="fstreams.html"?>
<title>File Based Streams</title> <title>File Based Streams</title>
<sect1 id="manual.io.filestreams.copying_a_file" xreflabel="Copying a File"> <sect2 id="std.io.filestreams.copying_a_file" xreflabel="Copying a File">
<title>Copying a File</title> <title>Copying a File</title>
<para> <para>
</para> </para>
...@@ -406,7 +406,7 @@ ...@@ -406,7 +406,7 @@
<para>Seriously, go do it. Get surprised, then come back. It's worth it. <para>Seriously, go do it. Get surprised, then come back. It's worth it.
</para> </para>
<para>The thing to remember is that the <code>basic_[io]stream</code> classes <para>The thing to remember is that the <code>basic_[io]stream</code> classes
handle formatting, nothing else. In particular, they break up on handle formatting, nothing else. In chaptericular, they break up on
whitespace. The actual reading, writing, and storing of data is whitespace. The actual reading, writing, and storing of data is
handled by the <code>basic_streambuf</code> family. Fortunately, the handled by the <code>basic_streambuf</code> family. Fortunately, the
<code>operator&lt;&lt;</code> is overloaded to take an ostream and <code>operator&lt;&lt;</code> is overloaded to take an ostream and
...@@ -416,7 +416,7 @@ ...@@ -416,7 +416,7 @@
<para>Why a <emphasis>pointer</emphasis> to streambuf and not just a streambuf? Well, <para>Why a <emphasis>pointer</emphasis> to streambuf and not just a streambuf? Well,
the [io]streams hold pointers (or references, depending on the the [io]streams hold pointers (or references, depending on the
implementation) to their buffers, not the actual implementation) to their buffers, not the actual
buffers. This allows polymorphic behavior on the part of the buffers buffers. This allows polymorphic behavior on the chapter of the buffers
as well as the streams themselves. The pointer is easily retrieved as well as the streams themselves. The pointer is easily retrieved
using the <code>rdbuf()</code> member function. Therefore, the easiest using the <code>rdbuf()</code> member function. Therefore, the easiest
way to copy the file is: way to copy the file is:
...@@ -424,7 +424,7 @@ ...@@ -424,7 +424,7 @@
<programlisting> <programlisting>
OUT &lt;&lt; IN.rdbuf();</programlisting> OUT &lt;&lt; IN.rdbuf();</programlisting>
<para>So what <emphasis>was</emphasis> happening with OUT&lt;&lt;IN? Undefined <para>So what <emphasis>was</emphasis> happening with OUT&lt;&lt;IN? Undefined
behavior, since that particular &lt;&lt; isn't defined by the Standard. behavior, since that chaptericular &lt;&lt; isn't defined by the Standard.
I have seen instances where it is implemented, but the character I have seen instances where it is implemented, but the character
extraction process removes all the whitespace, leaving you with no extraction process removes all the whitespace, leaving you with no
blank lines and only &quot;Thequickbrownfox...&quot;. With blank lines and only &quot;Thequickbrownfox...&quot;. With
...@@ -439,9 +439,9 @@ ...@@ -439,9 +439,9 @@
descendants. descendants.
</para> </para>
</sect1> </sect2>
<sect1 id="manual.io.filestreams.binary" xreflabel="Binary Input and Output"> <sect2 id="std.io.filestreams.binary" xreflabel="Binary Input and Output">
<title>Binary Input and Output</title> <title>Binary Input and Output</title>
<para> <para>
</para> </para>
...@@ -468,7 +468,7 @@ ...@@ -468,7 +468,7 @@
under Windows won't accidentally get mapped to a '\n' character, etc. under Windows won't accidentally get mapped to a '\n' character, etc.
Binary mode is not supposed to suddenly give you a bitstream, and Binary mode is not supposed to suddenly give you a bitstream, and
if it is doing so in your program then you've discovered a bug in if it is doing so in your program then you've discovered a bug in
your vendor's compiler (or some other part of the C++ implementation, your vendor's compiler (or some other chapter of the C++ implementation,
possibly the runtime system). possibly the runtime system).
</para> </para>
<para>Second, using <code>&lt;&lt;</code> to write and <code>&gt;&gt;</code> to <para>Second, using <code>&lt;&lt;</code> to write and <code>&gt;&gt;</code> to
...@@ -569,17 +569,17 @@ ...@@ -569,17 +569,17 @@
invocation of a program to another invocation of the same program invocation of a program to another invocation of the same program
on a different platform, etc. on a different platform, etc.
</para> </para>
</sect1> </sect2>
</chapter> </sect1>
<!-- Chapter 03 : Interacting with C --> <!-- Sect1 03 : Interacting with C -->
<chapter id="manual.io.c" xreflabel="Interacting with C"> <sect1 id="std.io.c" xreflabel="Interacting with C">
<?dbhtml filename="io_and_c.html"?> <?dbhtml filename="io_and_c.html"?>
<title>Interacting with C</title> <title>Interacting with C</title>
<sect1 id="manual.io.c.FILE" xreflabel="Using FILE* and file descriptors"> <sect2 id="std.io.c.FILE" xreflabel="Using FILE* and file descriptors">
<title>Using FILE* and file descriptors</title> <title>Using FILE* and file descriptors</title>
<para> <para>
See the <link linkend="manual.ext.io">extensions</link> for using See the <link linkend="manual.ext.io">extensions</link> for using
...@@ -587,9 +587,9 @@ ...@@ -587,9 +587,9 @@
<classname>ofstream</classname> and <classname>ofstream</classname> and
<classname>ifstream</classname>. <classname>ifstream</classname>.
</para> </para>
</sect1> </sect2>
<sect1 id="manual.io.c.sync" xreflabel="Performance Issues"> <sect2 id="std.io.c.sync" xreflabel="Performance Issues">
<title>Performance</title> <title>Performance</title>
<para> <para>
Pathetic Performance? Ditch C. Pathetic Performance? Ditch C.
...@@ -641,13 +641,13 @@ ...@@ -641,13 +641,13 @@
<para>Note, by the way, that the synchronization requirement only applies to <para>Note, by the way, that the synchronization requirement only applies to
the standard streams (<code>cin</code>, <code>cout</code>, the standard streams (<code>cin</code>, <code>cout</code>,
<code>cerr</code>, <code>cerr</code>,
<code>clog</code>, and their wide-character counterparts). File stream <code>clog</code>, and their wide-character counterchapters). File stream
objects that you declare yourself have no such requirement and are fully objects that you declare yourself have no such requirement and are fully
buffered. buffered.
</para> </para>
</sect1> </sect2>
</chapter> </sect1>
</part> </chapter>
<?xml version='1.0'?> <?xml version='1.0'?>
<!DOCTYPE part PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
[ ]> [ ]>
<part id="manual.iterators" xreflabel="Iterators"> <chapter id="std.iterators" xreflabel="Iterators">
<?dbhtml filename="iterators.html"?> <?dbhtml filename="iterators.html"?>
<partinfo> <chapterinfo>
<keywordset> <keywordset>
<keyword> <keyword>
ISO C++ ISO C++
...@@ -15,18 +15,18 @@ ...@@ -15,18 +15,18 @@
library library
</keyword> </keyword>
</keywordset> </keywordset>
</partinfo> </chapterinfo>
<title> <title>
Iterators Iterators
<indexterm><primary>Iterators</primary></indexterm> <indexterm><primary>Iterators</primary></indexterm>
</title> </title>
<!-- Chapter 01 : Predefined --> <!-- Sect1 01 : Predefined -->
<chapter id="manual.iterators.predefined" xreflabel="Predefined"> <sect1 id="std.iterators.predefined" xreflabel="Predefined">
<title>Predefined</title> <title>Predefined</title>
<sect1 id="iterators.predefined.vs_pointers" xreflabel="Versus Pointers"> <sect2 id="iterators.predefined.vs_pointers" xreflabel="Versus Pointers">
<title>Iterators vs. Pointers</title> <title>Iterators vs. Pointers</title>
<para> <para>
The following The following
...@@ -35,39 +35,45 @@ iterators are not implemented as pointers. They are a generalization ...@@ -35,39 +35,45 @@ iterators are not implemented as pointers. They are a generalization
of pointers, but they are implemented in libstdc++ as separate of pointers, but they are implemented in libstdc++ as separate
classes. classes.
</para> </para>
<para>Keeping that simple fact in mind as you design your code will <para>
Keeping that simple fact in mind as you design your code will
prevent a whole lot of difficult-to-understand bugs. prevent a whole lot of difficult-to-understand bugs.
</para> </para>
<para>You can think of it the other way 'round, even. Since iterators <para>
are a generalization, that means that <emphasis>pointers</emphasis> are You can think of it the other way 'round, even. Since iterators
<emphasis>iterators</emphasis>, and that pointers can be used whenever an are a generalization, that means
iterator would be. All those functions in the Algorithms chapter that <emphasis>pointers</emphasis> are
of the Standard will work just as well on plain arrays and their <emphasis>iterators</emphasis>, and that pointers can be used
pointers. whenever an iterator would be. All those functions in the
</para> Algorithms sect1 of the Standard will work just as well on plain
<para>That doesn't mean that when you pass in a pointer, it gets wrapped arrays and their pointers.
into some special delegating iterator-to-pointer class with a layer </para>
of overhead. (If you think that's the case anywhere, you don't <para>
understand templates to begin with...) Oh, no; if you pass That doesn't mean that when you pass in a pointer, it gets
in a pointer, then the compiler will instantiate that template wrapped into some special delegating iterator-to-pointer class
using T* as a type, and good old high-speed pointer arithmetic as with a layer of overhead. (If you think that's the case
its operations, so the resulting code will be doing exactly the same anywhere, you don't understand templates to begin with...) Oh,
things as it would be doing if you had hand-coded it yourself (for no; if you pass in a pointer, then the compiler will instantiate
the 273rd time). that template using T* as a type, and good old high-speed
</para> pointer arithmetic as its operations, so the resulting code will
<para>How much overhead <emphasis>is</emphasis> there when using an iterator class? be doing exactly the same things as it would be doing if you had
Very little. Most of the layering classes contain nothing but hand-coded it yourself (for the 273rd time).
typedefs, and typedefs are &quot;meta-information&quot; that simply </para>
tell the compiler some nicknames; they don't create code. That <para>
information gets passed down through inheritance, so while the How much overhead <emphasis>is</emphasis> there when using an
compiler has to do work looking up all the names, your runtime code iterator class? Very little. Most of the layering classes
does not. (This has been a prime concern from the beginning.) contain nothing but typedefs, and typedefs are
&quot;meta-information&quot; that simply tell the compiler some
nicknames; they don't create code. That information gets passed
down through inheritance, so while the compiler has to do work
looking up all the names, your runtime code does not. (This has
been a prime concern from the beginning.)
</para> </para>
</sect1> </sect2>
<sect1 id="iterators.predefined.end" xreflabel="end() Is One Past the End"> <sect2 id="iterators.predefined.end" xreflabel="end() Is One Past the End">
<title>One Past the End</title> <title>One Past the End</title>
<para>This starts off sounding complicated, but is actually very easy, <para>This starts off sounding complicated, but is actually very easy,
...@@ -134,7 +140,7 @@ classes. ...@@ -134,7 +140,7 @@ classes.
beginning end beginning end
</programlisting> </programlisting>
<para>See? Everything between the boundary markers is part of the array. <para>See? Everything between the boundary markers is chapter of the array.
Simple. Simple.
</para> </para>
<para>Now think back to your junior-high school algebra course, when you <para>Now think back to your junior-high school algebra course, when you
...@@ -175,9 +181,9 @@ classes. ...@@ -175,9 +181,9 @@ classes.
<para>Just don't dereference <code>end()</code>. <para>Just don't dereference <code>end()</code>.
</para> </para>
</sect1> </sect2>
</chapter> </sect1>
<!-- Chapter 02 : Stream --> <!-- Sect1 02 : Stream -->
</part> </chapter>
<sect1 id="manual.localization.locales.locale" xreflabel="Locale"> <section id="std.localization.locales.locale" xreflabel="Locale">
<sect1info> <sectioninfo>
<keywordset> <keywordset>
<keyword> <keyword>
ISO C++ ISO C++
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
locale locale
</keyword> </keyword>
</keywordset> </keywordset>
</sect1info> </sectioninfo>
<title>locale</title> <title>locale</title>
...@@ -19,7 +19,7 @@ classes id, facet, and the reference-counted implementation object, ...@@ -19,7 +19,7 @@ classes id, facet, and the reference-counted implementation object,
class _Impl. class _Impl.
</para> </para>
<sect2 id="locales.locale.req"> <section id="locales.locale.req">
<title>Requirements</title> <title>Requirements</title>
<para> <para>
...@@ -87,9 +87,9 @@ class id ...@@ -87,9 +87,9 @@ class id
<para> <para>
Provides an index for looking up specific facets. Provides an index for looking up specific facets.
</para> </para>
</sect2> </section>
<sect2 id="locales.locale.design"> <section id="locales.locale.design">
<title>Design</title> <title>Design</title>
<para> <para>
...@@ -103,12 +103,12 @@ Because C and earlier versions of POSIX fall down so completely, ...@@ -103,12 +103,12 @@ Because C and earlier versions of POSIX fall down so completely,
portability is an issue. portability is an issue.
</para> </para>
</sect2> </section>
<sect2 id="locales.locale.impl"> <section id="locales.locale.impl">
<title>Implementation</title> <title>Implementation</title>
<sect3 id="locale.impl.c"> <section id="locale.impl.c">
<title>Interacting with &quot;C&quot; locales</title> <title>Interacting with &quot;C&quot; locales</title>
<itemizedlist> <itemizedlist>
...@@ -467,10 +467,10 @@ global locale" (emphasis Paolo), that is: ...@@ -467,10 +467,10 @@ global locale" (emphasis Paolo), that is:
practice, the set of LC_ALL, LANG, etc. variable of the shell. practice, the set of LC_ALL, LANG, etc. variable of the shell.
</para> </para>
</sect3> </section>
</sect2> </section>
<sect2 id="locales.locale.future"> <section id="locales.locale.future">
<title>Future</title> <title>Future</title>
<itemizedlist> <itemizedlist>
...@@ -508,7 +508,7 @@ global locale" (emphasis Paolo), that is: ...@@ -508,7 +508,7 @@ global locale" (emphasis Paolo), that is:
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</sect2> </section>
<bibliography id="locales.locale.biblio"> <bibliography id="locales.locale.biblio">
<title>Bibliography</title> <title>Bibliography</title>
...@@ -634,4 +634,4 @@ global locale" (emphasis Paolo), that is: ...@@ -634,4 +634,4 @@ global locale" (emphasis Paolo), that is:
</bibliography> </bibliography>
</sect1> </section>
<?xml version='1.0'?> <?xml version='1.0'?>
<!DOCTYPE part PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
[ ]> [ ]>
<part id="manual.localization" xreflabel="Localization"> <chapter id="std.localization" xreflabel="Localization">
<?dbhtml filename="localization.html"?> <?dbhtml filename="localization.html"?>
<partinfo> <chapterinfo>
<keywordset> <keywordset>
<keyword> <keyword>
ISO C++ ISO C++
...@@ -15,15 +15,15 @@ ...@@ -15,15 +15,15 @@
library library
</keyword> </keyword>
</keywordset> </keywordset>
</partinfo> </chapterinfo>
<title> <title>
Localization Localization
<indexterm><primary>Localization</primary></indexterm> <indexterm><primary>Localization</primary></indexterm>
</title> </title>
<!-- Chapter 01 : Locale --> <!-- Section 01 : Locale -->
<chapter id="manual.localization.locales" xreflabel="Locales"> <section id="std.localization.locales" xreflabel="Locales">
<?dbhtml filename="locales.html"?> <?dbhtml filename="locales.html"?>
<title>Locales</title> <title>Locales</title>
...@@ -31,12 +31,12 @@ ...@@ -31,12 +31,12 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
parse="xml" href="locale.xml"> parse="xml" href="locale.xml">
</xi:include> </xi:include>
</chapter> </section>
<!-- Chapter 02 : Facet --> <!-- Section 02 : Facet -->
<chapter id="manual.localization.facet" xreflabel="Facets"> <section id="std.localization.facet" xreflabel="Facets">
<?dbhtml filename="facets.html"?> <?dbhtml filename="facets.html"?>
<title>Facets aka Categories</title> <title>Facets</title>
<!-- Section 01 : ctype --> <!-- Section 01 : ctype -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
...@@ -52,8 +52,8 @@ ...@@ -52,8 +52,8 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
parse="xml" href="messages.xml"> parse="xml" href="messages.xml">
</xi:include> </xi:include>
</chapter> </section>
<!-- Chapter 03 : Interacting with C --> <!-- Section 03 : Interacting with C -->
</part> </chapter>
<sect1 id="manual.localization.facet.messages" xreflabel="Messages"> <section id="manual.localization.facet.messages" xreflabel="Messages">
<?dbhtml filename="messages.html"?> <?dbhtml filename="messages.html"?>
<sect1info> <sectioninfo>
<keywordset> <keywordset>
<keyword> <keyword>
ISO C++ ISO C++
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
messages messages
</keyword> </keyword>
</keywordset> </keywordset>
</sect1info> </sectioninfo>
<title>messages</title> <title>messages</title>
...@@ -20,7 +20,7 @@ equivalent to Java's java.text.MessageFormat .using either GNU gettext ...@@ -20,7 +20,7 @@ equivalent to Java's java.text.MessageFormat .using either GNU gettext
or IEEE 1003.1-200 functions. or IEEE 1003.1-200 functions.
</para> </para>
<sect2 id="facet.messages.req"> <section id="facet.messages.req">
<title>Requirements</title> <title>Requirements</title>
<para> <para>
...@@ -106,9 +106,9 @@ be found, returns dfault. ...@@ -106,9 +106,9 @@ be found, returns dfault.
</blockquote> </blockquote>
</sect2> </section>
<sect2 id="facet.messages.design"> <section id="facet.messages.design">
<title>Design</title> <title>Design</title>
<para> <para>
...@@ -155,12 +155,12 @@ to be written in English, so translations are always from "en_US" to ...@@ -155,12 +155,12 @@ to be written in English, so translations are always from "en_US" to
other, explicitly named locales. other, explicitly named locales.
</para> </para>
</sect2> </section>
<sect2 id="facet.messages.impl"> <section id="facet.messages.impl">
<title>Implementation</title> <title>Implementation</title>
<sect3 id="messages.impl.models"> <section id="messages.impl.models">
<title>Models</title> <title>Models</title>
<para> <para>
This is a relatively simple class, on the face of it. The standard This is a relatively simple class, on the face of it. The standard
...@@ -226,9 +226,9 @@ message catalog. This simplifies calling conventions for the gnu ...@@ -226,9 +226,9 @@ message catalog. This simplifies calling conventions for the gnu
model. model.
</para> </para>
</sect3> </section>
<sect3 id="messages.impl.gnu"> <section id="messages.impl.gnu">
<title>The GNU Model</title> <title>The GNU Model</title>
<para> <para>
...@@ -318,10 +318,10 @@ model. ...@@ -318,10 +318,10 @@ model.
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</sect3> </section>
</sect2> </section>
<sect2 id="facet.messages.use"> <section id="facet.messages.use">
<title>Use</title> <title>Use</title>
<para> <para>
A simple example using the GNU model of message conversion. A simple example using the GNU model of message conversion.
...@@ -349,9 +349,9 @@ void test01() ...@@ -349,9 +349,9 @@ void test01()
} }
</programlisting> </programlisting>
</sect2> </section>
<sect2 id="facet.messages.future"> <section id="facet.messages.future">
<title>Future</title> <title>Future</title>
<itemizedlist> <itemizedlist>
...@@ -436,7 +436,7 @@ void test01() ...@@ -436,7 +436,7 @@ void test01()
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</sect2> </section>
<bibliography id="facet.messages.biblio"> <bibliography id="facet.messages.biblio">
<title>Bibliography</title> <title>Bibliography</title>
...@@ -585,4 +585,4 @@ Library and Tools. ...@@ -585,4 +585,4 @@ Library and Tools.
</bibliography> </bibliography>
</sect1> </section>
<?xml version='1.0'?> <?xml version='1.0'?>
<!DOCTYPE part PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
[ ]> [ ]>
<part id="manual.numerics" xreflabel="Numerics"> <chapter id="std.numerics" xreflabel="Numerics">
<?dbhtml filename="numerics.html"?> <?dbhtml filename="numerics.html"?>
<partinfo> <chapterinfo>
<keywordset> <keywordset>
<keyword> <keyword>
ISO C++ ISO C++
...@@ -15,20 +15,20 @@ ...@@ -15,20 +15,20 @@
library library
</keyword> </keyword>
</keywordset> </keywordset>
</partinfo> </chapterinfo>
<title> <title>
Numerics Numerics
<indexterm><primary>Numerics</primary></indexterm> <indexterm><primary>Numerics</primary></indexterm>
</title> </title>
<!-- Chapter 01 : Complex --> <!-- Sect1 01 : Complex -->
<chapter id="manual.numerics.complex" xreflabel="complex"> <sect1 id="std.numerics.complex" xreflabel="complex">
<?dbhtml filename="complex.html"?> <?dbhtml filename="complex.html"?>
<title>Complex</title> <title>Complex</title>
<para> <para>
</para> </para>
<sect1 id="numerics.complex.processing" xreflabel="complex Processing"> <sect2 id="numerics.complex.processing" xreflabel="complex Processing">
<title>complex Processing</title> <title>complex Processing</title>
<para> <para>
</para> </para>
...@@ -49,11 +49,11 @@ ...@@ -49,11 +49,11 @@
<code>(u)</code>, and <code>(u,v)</code>. <code>(u)</code>, and <code>(u,v)</code>.
</para> </para>
</sect1> </sect2>
</chapter> </sect1>
<!-- Chapter 02 : Generalized Operations --> <!-- Sect1 02 : Generalized Operations -->
<chapter id="manual.numerics.generalized_ops" xreflabel="Generalized Ops"> <sect1 id="std.numerics.generalized_ops" xreflabel="Generalized Ops">
<?dbhtml filename="generalized_numeric_operations.html"?> <?dbhtml filename="generalized_numeric_operations.html"?>
<title>Generalized Operations</title> <title>Generalized Operations</title>
<para> <para>
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
<itemizedlist> <itemizedlist>
<listitem><para><code>accumulate</code></para></listitem> <listitem><para><code>accumulate</code></para></listitem>
<listitem><para><code>inner_product</code></para></listitem> <listitem><para><code>inner_product</code></para></listitem>
<listitem><para><code>partial_sum</code></para></listitem> <listitem><para><code>chapterial_sum</code></para></listitem>
<listitem><para><code>adjacent_difference</code></para></listitem> <listitem><para><code>adjacent_difference</code></para></listitem>
</itemizedlist> </itemizedlist>
<para>Here is a simple example of the two forms of <code>accumulate</code>. <para>Here is a simple example of the two forms of <code>accumulate</code>.
...@@ -93,14 +93,14 @@ ...@@ -93,14 +93,14 @@
<para>The other three functions have similar dual-signature forms. <para>The other three functions have similar dual-signature forms.
</para> </para>
</chapter> </sect1>
<!-- Chapter 03 : Interacting with C --> <!-- Sect1 03 : Interacting with C -->
<chapter id="manual.numerics.c" xreflabel="Interacting with C"> <sect1 id="std.numerics.c" xreflabel="Interacting with C">
<?dbhtml filename="numerics_and_c.html"?> <?dbhtml filename="numerics_and_c.html"?>
<title>Interacting with C</title> <title>Interacting with C</title>
<sect1 id="numerics.c.array" xreflabel="Numerics vs. Arrays"> <sect2 id="numerics.c.array" xreflabel="Numerics vs. Arrays">
<title>Numerics vs. Arrays</title> <title>Numerics vs. Arrays</title>
<para>One of the major reasons why FORTRAN can chew through numbers so well <para>One of the major reasons why FORTRAN can chew through numbers so well
...@@ -121,9 +121,9 @@ ...@@ -121,9 +121,9 @@
libraries before. libraries before.
</para> </para>
</sect1> </sect2>
<sect1 id="numerics.c.c99" xreflabel="C99"> <sect2 id="numerics.c.c99" xreflabel="C99">
<title>C99</title> <title>C99</title>
<para>In addition to the other topics on this page, we'll note here some <para>In addition to the other topics on this page, we'll note here some
...@@ -143,7 +143,7 @@ ...@@ -143,7 +143,7 @@
<code>wcstoll</code>. <code>wcstoll</code>.
</para> </para>
</sect1> </sect2>
</chapter> </sect1>
</part> </chapter>
<sect1 id="manual.util.memory.shared_ptr" xreflabel="shared_ptr"> <section id="std.util.memory.shared_ptr" xreflabel="shared_ptr">
<?dbhtml filename="shared_ptr.html"?> <?dbhtml filename="shared_ptr.html"?>
<sect1info> <sectioninfo>
<keywordset> <keywordset>
<keyword> <keyword>
ISO C++ ISO C++
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
shared_ptr shared_ptr
</keyword> </keyword>
</keywordset> </keywordset>
</sect1info> </sectioninfo>
<title>shared_ptr</title> <title>shared_ptr</title>
...@@ -19,7 +19,7 @@ The shared_ptr class template stores a pointer, usually obtained via new, ...@@ -19,7 +19,7 @@ The shared_ptr class template stores a pointer, usually obtained via new,
and implements shared ownership semantics. and implements shared ownership semantics.
</para> </para>
<sect2 id="shared_ptr.req"> <section id="shared_ptr.req">
<title>Requirements</title> <title>Requirements</title>
<para> <para>
...@@ -41,9 +41,9 @@ and implements shared ownership semantics. ...@@ -41,9 +41,9 @@ and implements shared ownership semantics.
<para> <para>
</para> </para>
</sect2> </section>
<sect2 id="shared_ptr.design_issues"> <section id="shared_ptr.design_issues">
<title>Design Issues</title> <title>Design Issues</title>
...@@ -65,12 +65,12 @@ where the correct dynamic type is known. This is an application of the ...@@ -65,12 +65,12 @@ where the correct dynamic type is known. This is an application of the
technique known as type erasure. technique known as type erasure.
</para> </para>
</sect2> </section>
<sect2 id="shared_ptr.impl"> <section id="shared_ptr.impl">
<title>Implementation</title> <title>Implementation</title>
<sect3> <section>
<title>Class Hierarchy</title> <title>Class Hierarchy</title>
<para> <para>
...@@ -156,9 +156,9 @@ that simplifies the implementation slightly. ...@@ -156,9 +156,9 @@ that simplifies the implementation slightly.
</variablelist> </variablelist>
</sect3> </section>
<sect3> <section>
<title>Thread Safety</title> <title>Thread Safety</title>
<para> <para>
...@@ -232,9 +232,9 @@ makes things much simpler: we have an atomic CAS or we don't, see Lock ...@@ -232,9 +232,9 @@ makes things much simpler: we have an atomic CAS or we don't, see Lock
Policy below for details. Policy below for details.
</para> </para>
</sect3> </section>
<sect3> <section>
<title>Selecting Lock Policy</title> <title>Selecting Lock Policy</title>
<para> <para>
...@@ -300,9 +300,9 @@ used when libstdc++ is built without <literal>--enable-threads</literal>. ...@@ -300,9 +300,9 @@ used when libstdc++ is built without <literal>--enable-threads</literal>.
is multi-threaded. If only one thread of execution exists in is multi-threaded. If only one thread of execution exists in
the program then less expensive non-atomic operations are used. the program then less expensive non-atomic operations are used.
</para> </para>
</sect3> </section>
<sect3> <section>
<title>Dual C++0x and TR1 Implementation</title> <title>Dual C++0x and TR1 Implementation</title>
<para> <para>
...@@ -319,9 +319,9 @@ change unless bug fixes require it. If the code that is common to both ...@@ -319,9 +319,9 @@ change unless bug fixes require it. If the code that is common to both
C++0x and TR1 modes needs to diverge further then it might be necessary to C++0x and TR1 modes needs to diverge further then it might be necessary to
duplicate additional classes and only make changes to the C++0x versions. duplicate additional classes and only make changes to the C++0x versions.
</para> </para>
</sect3> </section>
<sect3> <section>
<title>Related functions and classes</title> <title>Related functions and classes</title>
<variablelist> <variablelist>
...@@ -382,9 +382,9 @@ be private. ...@@ -382,9 +382,9 @@ be private.
</variablelist> </variablelist>
</sect3> </section>
</sect2> </section>
<!--- XXX <!--- XXX
<listitem> <listitem>
...@@ -414,18 +414,18 @@ the following types, depending on how the shared_ptr is constructed. ...@@ -414,18 +414,18 @@ the following types, depending on how the shared_ptr is constructed.
</listitem> </listitem>
--> -->
<sect2 id="shared_ptr.using"> <section id="shared_ptr.using">
<title>Use</title> <title>Use</title>
<sect3> <section>
<title>Examples</title> <title>Examples</title>
<para> <para>
Examples of use can be found in the testsuite, under Examples of use can be found in the testsuite, under
<filename class="directory">testsuite/tr1/2_general_utilities/shared_ptr</filename>. <filename class="directory">testsuite/tr1/2_general_utilities/shared_ptr</filename>.
</para> </para>
</sect3> </section>
<sect3> <section>
<title>Unresolved Issues</title> <title>Unresolved Issues</title>
<para> <para>
The resolution to C++ Standard Library issue <ulink url="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#674">674</ulink>, The resolution to C++ Standard Library issue <ulink url="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#674">674</ulink>,
...@@ -481,11 +481,11 @@ the following types, depending on how the shared_ptr is constructed. ...@@ -481,11 +481,11 @@ the following types, depending on how the shared_ptr is constructed.
*_pointer_cast functions. Constructor could be private in TR1 *_pointer_cast functions. Constructor could be private in TR1
mode, with the cast functions as friends. mode, with the cast functions as friends.
</para> </para>
</sect3> </section>
</sect2> </section>
<sect2 id="shared_ptr.ack"> <section id="shared_ptr.ack">
<title>Acknowledgments</title> <title>Acknowledgments</title>
<para> <para>
...@@ -495,7 +495,7 @@ the following types, depending on how the shared_ptr is constructed. ...@@ -495,7 +495,7 @@ the following types, depending on how the shared_ptr is constructed.
Carlini for the lock policy implementation. Carlini for the lock policy implementation.
</para> </para>
</sect2> </section>
<bibliography id="shared_ptr.biblio"> <bibliography id="shared_ptr.biblio">
<title>Bibliography</title> <title>Bibliography</title>
...@@ -554,4 +554,4 @@ the following types, depending on how the shared_ptr is constructed. ...@@ -554,4 +554,4 @@ the following types, depending on how the shared_ptr is constructed.
</bibliography> </bibliography>
</sect1> </section>
...@@ -28,62 +28,77 @@ ...@@ -28,62 +28,77 @@
parse="xml" href="intro.xml"> parse="xml" href="intro.xml">
</xi:include> </xi:include>
<!-- Part 02 : Support --> <!-- Part 02 : Standard Contents -->
<part id="manual.std" xreflabel="Standard Contents">
<title>
Standard Contents
</title>
<!-- Chapter 01 : Support -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
parse="xml" href="support.xml"> parse="xml" href="support.xml">
</xi:include> </xi:include>
<!-- Part 03 : Diagnostics -->
<!-- Chapter 02 : Diagnostics -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
parse="xml" href="diagnostics.xml"> parse="xml" href="diagnostics.xml">
</xi:include> </xi:include>
<!-- Part 04 : Utilities --> <!-- Chapter 03 : Utilities -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
parse="xml" href="utilities.xml"> parse="xml" href="utilities.xml">
</xi:include> </xi:include>
<!-- Part 05 : Strings --> <!-- Chapter 04 : Strings -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
parse="xml" href="strings.xml"> parse="xml" href="strings.xml">
</xi:include> </xi:include>
<!-- Part 06 : Localization --> <!-- Chapter 05 : Localization -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
parse="xml" href="localization.xml"> parse="xml" href="localization.xml">
</xi:include> </xi:include>
<!-- Part 07 : Containers --> <!-- Chapter 06 : Containers -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
parse="xml" href="containers.xml"> parse="xml" href="containers.xml">
</xi:include> </xi:include>
<!-- Part 08 : Iterators --> <!-- Chapter 07 : Iterators -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
parse="xml" href="iterators.xml"> parse="xml" href="iterators.xml">
</xi:include> </xi:include>
<!-- Part 09 : Algorithms --> <!-- Chapter 08 : Algorithms -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
parse="xml" href="algorithms.xml"> parse="xml" href="algorithms.xml">
</xi:include> </xi:include>
<!-- Part 10 : Numerics --> <!-- Chapter 09 : Numerics -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
parse="xml" href="numerics.xml"> parse="xml" href="numerics.xml">
</xi:include> </xi:include>
<!-- Part 11 : Input Output --> <!-- Chapter 10 : Input Output -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
parse="xml" href="io.xml"> parse="xml" href="io.xml">
</xi:include> </xi:include>
<!-- Part 12 : Extensions --> </part>
<!-- Part 03 : Extensions -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
parse="xml" href="extensions.xml"> parse="xml" href="extensions.xml">
</xi:include> </xi:include>
<!-- Part 04 : Appendices -->
<part id="appendix" xreflabel="Appendices">
<title>
Appendices
</title>
<!-- Appendix A --> <!-- Appendix A -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
parse="xml" href="appendix_contributing.xml"> parse="xml" href="appendix_contributing.xml">
...@@ -109,7 +124,6 @@ ...@@ -109,7 +124,6 @@
parse="xml" href="../gnu/fdl-1.2.xml"> parse="xml" href="../gnu/fdl-1.2.xml">
</xi:include> </xi:include>
<!-- Index --> </part>
<index/>
</book> </book>
...@@ -1078,7 +1078,7 @@ particular release. ...@@ -1078,7 +1078,7 @@ particular release.
in the sections where the function itself occurs. in the sections where the function itself occurs.
--> -->
<para><emphasis>[18.1]/4</emphasis> The type of <code>NULL</code> is described <para><emphasis>[18.1]/4</emphasis> The type of <code>NULL</code> is described
<link linkend="manual.support.types.null">here</link>. <link linkend="std.support.types.null">here</link>.
</para> </para>
<para><emphasis>[18.3]/8</emphasis> Even though it's listed in the library <para><emphasis>[18.3]/8</emphasis> Even though it's listed in the library
sections, libstdc++ has zero control over what the cleanup code hands sections, libstdc++ has zero control over what the cleanup code hands
...@@ -1125,12 +1125,12 @@ particular release. ...@@ -1125,12 +1125,12 @@ particular release.
</para> </para>
<para><emphasis>[21.1.3.1]/5</emphasis> I don't really know about <para><emphasis>[21.1.3.1]/5</emphasis> I don't really know about
the mbstate_t stuff... see the mbstate_t stuff... see
the <link linkend="manual.localization.facet.codecvt">chapter 22 the <link linkend="std.localization.facet.codecvt">chapter 22
notes</link> for what does exist. notes</link> for what does exist.
</para> </para>
<para><emphasis>[22.*]</emphasis> Anything and everything we have on locale <para><emphasis>[22.*]</emphasis> Anything and everything we have on locale
implementation will be described implementation will be described
<link linkend="manual.localization.locales.locale">over here</link>. <link linkend="std.localization.locales.locale">over here</link>.
</para> </para>
<para><emphasis>[26.2.8]/9</emphasis> I have no idea what <para><emphasis>[26.2.8]/9</emphasis> I have no idea what
<code>complex&lt;T&gt;</code>'s pow(0,0) returns. <code>complex&lt;T&gt;</code>'s pow(0,0) returns.
...@@ -1152,7 +1152,7 @@ particular release. ...@@ -1152,7 +1152,7 @@ particular release.
<para><emphasis>[27.7.1.3]/16</emphasis>, <para><emphasis>[27.7.1.3]/16</emphasis>,
<emphasis>[27.8.1.4]/10</emphasis> <emphasis>[27.8.1.4]/10</emphasis>
The effects of <code>pubsetbuf/setbuf</code> are described The effects of <code>pubsetbuf/setbuf</code> are described
<link linkend="manual.io">in this chapter</link>. <link linkend="std.io">in this chapter</link>.
</para> </para>
<para><emphasis>[27.8.1.4]/16</emphasis> Calling <code>fstream::sync</code> when <para><emphasis>[27.8.1.4]/16</emphasis> Calling <code>fstream::sync</code> when
a get area exists will... whatever <code>fflush()</code> does, I think. a get area exists will... whatever <code>fflush()</code> does, I think.
......
<?xml version='1.0'?> <?xml version='1.0'?>
<!DOCTYPE part PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
[ ]> [ ]>
<part id="manual.strings" xreflabel="Strings"> <chapter id="std.strings" xreflabel="Strings">
<?dbhtml filename="strings.html"?> <?dbhtml filename="strings.html"?>
<partinfo> <chapterinfo>
<keywordset> <keywordset>
<keyword> <keyword>
ISO C++ ISO C++
...@@ -15,20 +15,20 @@ ...@@ -15,20 +15,20 @@
library library
</keyword> </keyword>
</keywordset> </keywordset>
</partinfo> </chapterinfo>
<title> <title>
Strings Strings
<indexterm><primary>Strings</primary></indexterm> <indexterm><primary>Strings</primary></indexterm>
</title> </title>
<!-- Chapter 01 : Character Traits --> <!-- Sect1 01 : Character Traits -->
<!-- Chapter 02 : String Classes --> <!-- Sect1 02 : String Classes -->
<chapter id="manual.strings.string" xreflabel="string"> <sect1 id="std.strings.string" xreflabel="string">
<title>String Classes</title> <title>String Classes</title>
<sect1 id="strings.string.simple" xreflabel="Simple Transformations"> <sect2 id="strings.string.simple" xreflabel="Simple Transformations">
<title>Simple Transformations</title> <title>Simple Transformations</title>
<para> <para>
Here are Standard, simple, and portable ways to perform common Here are Standard, simple, and portable ways to perform common
...@@ -122,8 +122,8 @@ ...@@ -122,8 +122,8 @@
optimize named temporaries out of existence. optimize named temporaries out of existence.
</para> </para>
</sect1> </sect2>
<sect1 id="strings.string.case" xreflabel="Case Sensitivity"> <sect2 id="strings.string.case" xreflabel="Case Sensitivity">
<title>Case Sensitivity</title> <title>Case Sensitivity</title>
<para> <para>
</para> </para>
...@@ -174,8 +174,8 @@ ...@@ -174,8 +174,8 @@
very good information. very good information.
</para> </para>
</sect1> </sect2>
<sect1 id="strings.string.character_types" xreflabel="Arbitrary Characters"> <sect2 id="strings.string.character_types" xreflabel="Arbitrary Characters">
<title>Arbitrary Character Types</title> <title>Arbitrary Character Types</title>
<para> <para>
</para> </para>
...@@ -245,9 +245,9 @@ ...@@ -245,9 +245,9 @@
(See how tricky this is?) (See how tricky this is?)
</para> </para>
</sect1> </sect2>
<sect1 id="strings.string.token" xreflabel="Tokenizing"> <sect2 id="strings.string.token" xreflabel="Tokenizing">
<title>Tokenizing</title> <title>Tokenizing</title>
<para> <para>
</para> </para>
...@@ -345,8 +345,8 @@ stringtok(Container &amp;container, string const &amp;in, ...@@ -345,8 +345,8 @@ stringtok(Container &amp;container, string const &amp;in,
</para> </para>
</sect1> </sect2>
<sect1 id="strings.string.shrink" xreflabel="Shrink to Fit"> <sect2 id="strings.string.shrink" xreflabel="Shrink to Fit">
<title>Shrink to Fit</title> <title>Shrink to Fit</title>
<para> <para>
</para> </para>
...@@ -368,9 +368,9 @@ stringtok(Container &amp;container, string const &amp;in, ...@@ -368,9 +368,9 @@ stringtok(Container &amp;container, string const &amp;in,
</para> </para>
</sect1> </sect2>
<sect1 id="strings.string.Cstring" xreflabel="CString (MFC)"> <sect2 id="strings.string.Cstring" xreflabel="CString (MFC)">
<title>CString (MFC)</title> <title>CString (MFC)</title>
<para> <para>
</para> </para>
...@@ -469,7 +469,7 @@ stringtok(Container &amp;container, string const &amp;in, ...@@ -469,7 +469,7 @@ stringtok(Container &amp;container, string const &amp;in,
<emphasis>if the implementors do it correctly</emphasis>. The libstdc++ <emphasis>if the implementors do it correctly</emphasis>. The libstdc++
implementors did it correctly. Other vendors might not. implementors did it correctly. Other vendors might not.
</para></listitem> </para></listitem>
<listitem><para>While parts of the SGI STL are used in libstdc++, their <listitem><para>While chapters of the SGI STL are used in libstdc++, their
string class is not. The SGI <code>string</code> is essentially string class is not. The SGI <code>string</code> is essentially
<code>vector&lt;char&gt;</code> and does not do any reference <code>vector&lt;char&gt;</code> and does not do any reference
counting like libstdc++'s does. (It is O(n), though.) counting like libstdc++'s does. (It is O(n), though.)
...@@ -481,9 +481,9 @@ stringtok(Container &amp;container, string const &amp;in, ...@@ -481,9 +481,9 @@ stringtok(Container &amp;container, string const &amp;in,
</para></listitem> </para></listitem>
</itemizedlist> </itemizedlist>
</sect1> </sect2>
</chapter> </sect1>
<!-- Chapter 03 : Interacting with C --> <!-- Sect1 03 : Interacting with C -->
</part> </chapter>
<?xml version='1.0'?> <?xml version='1.0'?>
<!DOCTYPE part PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
[ ]> [ ]>
<part id="manual.support" xreflabel="Support"> <chapter id="std.support" xreflabel="Support">
<?dbhtml filename="support.html"?> <?dbhtml filename="support.html"?>
<partinfo> <chapterinfo>
<keywordset> <keywordset>
<keyword> <keyword>
ISO C++ ISO C++
...@@ -15,15 +15,13 @@ ...@@ -15,15 +15,13 @@
library library
</keyword> </keyword>
</keywordset> </keywordset>
</partinfo> </chapterinfo>
<title> <title>
Support Support
<indexterm><primary>Support</primary></indexterm> <indexterm><primary>Support</primary></indexterm>
</title> </title>
<preface>
<title></title>
<para> <para>
This part deals with the functions called and objects created This part deals with the functions called and objects created
automatically during the course of a program's existence. automatically during the course of a program's existence.
...@@ -35,12 +33,11 @@ ...@@ -35,12 +33,11 @@
homepage for help), we can mention a couple of changes in what homepage for help), we can mention a couple of changes in what
kind of support a C++ program gets from the Standard Library. kind of support a C++ program gets from the Standard Library.
</para> </para>
</preface>
<chapter id="manual.support.types" xreflabel="Types"> <sect1 id="std.support.types" xreflabel="Types">
<?dbhtml filename="fundamental_types.html"?> <?dbhtml filename="fundamental_types.html"?>
<title>Types</title> <title>Types</title>
<sect1 id="manual.support.types.fundamental" xreflabel="Fundamental Types"> <sect2 id="std.support.types.fundamental" xreflabel="Fundamental Types">
<title>Fundamental Types</title> <title>Fundamental Types</title>
<para> <para>
C++ has the following builtin types: C++ has the following builtin types:
...@@ -101,8 +98,8 @@ ...@@ -101,8 +98,8 @@
instead, use a POD. instead, use a POD.
</para> </para>
</sect1> </sect2>
<sect1 id="manual.support.types.numeric_limits" xreflabel="Numeric Properties"> <sect2 id="std.support.types.numeric_limits" xreflabel="Numeric Properties">
<title>Numeric Properties</title> <title>Numeric Properties</title>
...@@ -156,9 +153,9 @@ ...@@ -156,9 +153,9 @@
static const float_round_style round_style; static const float_round_style round_style;
}; };
</programlisting> </programlisting>
</sect1> </sect2>
<sect1 id="manual.support.types.null" xreflabel="NULL"> <sect2 id="std.support.types.null" xreflabel="NULL">
<title>NULL</title> <title>NULL</title>
<para> <para>
The only change that might affect people is the type of The only change that might affect people is the type of
...@@ -195,11 +192,11 @@ ...@@ -195,11 +192,11 @@
<ulink url="http://www.awprofessional.com/titles/0-201-31015-5/">the <ulink url="http://www.awprofessional.com/titles/0-201-31015-5/">the
Effective C++ CD example</ulink> Effective C++ CD example</ulink>
</para> </para>
</sect1> </sect2>
</chapter> </sect1>
<chapter id="manual.support.memory" xreflabel="Dynamic Memory"> <sect1 id="std.support.memory" xreflabel="Dynamic Memory">
<?dbhtml filename="dynamic_memory.html"?> <?dbhtml filename="dynamic_memory.html"?>
<title>Dynamic Memory</title> <title>Dynamic Memory</title>
<para> <para>
...@@ -277,14 +274,14 @@ ...@@ -277,14 +274,14 @@
</programlisting> </programlisting>
<para> <para>
<classname>bad_alloc</classname> is derived from the base <classname>exception</classname> <classname>bad_alloc</classname> is derived from the base <classname>exception</classname>
class defined in Chapter 19. class defined in Sect1 19.
</para> </para>
</chapter> </sect1>
<chapter id="manual.support.termination" xreflabel="Termination"> <sect1 id="std.support.termination" xreflabel="Termination">
<?dbhtml filename="termination.html"?> <?dbhtml filename="termination.html"?>
<title>Termination</title> <title>Termination</title>
<sect1 id="support.termination.handlers" xreflabel="Termination Handlers"> <sect2 id="support.termination.handlers" xreflabel="Termination Handlers">
<title>Termination Handlers</title> <title>Termination Handlers</title>
<para> <para>
Not many changes here to <filename Not many changes here to <filename
...@@ -345,9 +342,9 @@ ...@@ -345,9 +342,9 @@
those slots. If you think you may run out, we recommend using those slots. If you think you may run out, we recommend using
the <function>xatexit</function>/<function>xexit</function> combination from <literal>libiberty</literal>, which has no such limit. the <function>xatexit</function>/<function>xexit</function> combination from <literal>libiberty</literal>, which has no such limit.
</para> </para>
</sect1> </sect2>
<sect1 id="support.termination.verbose" xreflabel="Verbose Terminate Handler"> <sect2 id="support.termination.verbose" xreflabel="Verbose Terminate Handler">
<?dbhtml filename="verbose_termination.html"?> <?dbhtml filename="verbose_termination.html"?>
<title>Verbose Terminate Handler</title> <title>Verbose Terminate Handler</title>
<para> <para>
...@@ -449,7 +446,7 @@ int main(int argc) ...@@ -449,7 +446,7 @@ int main(int argc)
an unspecified manner. an unspecified manner.
</para> </para>
</sect1> </sect2>
</chapter> </sect1>
</part> </chapter>
...@@ -1501,7 +1501,7 @@ gcc version 4.1.2 20070925 (Red Hat 4.1.2-33) ...@@ -1501,7 +1501,7 @@ gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)
this at application run-time this at application run-time
see <link linkend="manual.intro.using.macros">here</link>. Also see <link linkend="manual.intro.using.macros">here</link>. Also
useful are details useful are details
on <link linkend="manual.util.memory.allocator">allocator</link> on <link linkend="std.util.memory.allocator">allocator</link>
options and capabilities. options and capabilities.
</para> </para>
......
<?xml version='1.0'?> <?xml version='1.0'?>
<!DOCTYPE part PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
[ ]> [ ]>
<part id="manual.util" xreflabel="Utilities"> <chapter id="std.util" xreflabel="Utilities">
<?dbhtml filename="utilities.html"?> <?dbhtml filename="utilities.html"?>
<partinfo> <chapterinfo>
<keywordset> <keywordset>
<keyword> <keyword>
ISO C++ ISO C++
...@@ -15,28 +15,28 @@ ...@@ -15,28 +15,28 @@
library library
</keyword> </keyword>
</keywordset> </keywordset>
</partinfo> </chapterinfo>
<title> <title>
Utilities Utilities
<indexterm><primary>Utilities</primary></indexterm> <indexterm><primary>Utilities</primary></indexterm>
</title> </title>
<!-- Chapter 01 : Functors --> <!-- Section 01 : Functors -->
<chapter id="manual.util.functors" xreflabel="Functors"> <section id="std.util.functors" xreflabel="Functors">
<?dbhtml filename="functors.html"?> <?dbhtml filename="functors.html"?>
<title>Functors</title> <title>Functors</title>
<para>If you don't know what functors are, you're not alone. Many people <para>If you don't know what functors are, you're not alone. Many people
get slightly the wrong idea. In the interest of not reinventing get slightly the wrong idea. In the interest of not reinventing
the wheel, we will refer you to the introduction to the functor the wheel, we will refer you to the introduction to the functor
concept written by SGI as part of their STL, in concept written by SGI as chapter of their STL, in
<ulink url="http://www.sgi.com/tech/stl/functors.html">their <ulink url="http://www.sgi.com/tech/stl/functors.html">their
http://www.sgi.com/tech/stl/functors.html</ulink>. http://www.sgi.com/tech/stl/functors.html</ulink>.
</para> </para>
</chapter> </section>
<!-- Chapter 02 : Pairs --> <!-- Section 02 : Pairs -->
<chapter id="manual.util.pairs" xreflabel="Pairs"> <section id="std.util.pairs" xreflabel="Pairs">
<?dbhtml filename="pairs.html"?> <?dbhtml filename="pairs.html"?>
<title>Pairs</title> <title>Pairs</title>
<para>The <code>pair&lt;T1,T2&gt;</code> is a simple and handy way to <para>The <code>pair&lt;T1,T2&gt;</code> is a simple and handy way to
...@@ -89,10 +89,10 @@ ...@@ -89,10 +89,10 @@
pair&lt;int,MyClass&gt; p = make_pair(4,myobject); pair&lt;int,MyClass&gt; p = make_pair(4,myobject);
</programlisting> </programlisting>
</chapter> </section>
<!-- Chapter 03 : Memory --> <!-- Section 03 : Memory -->
<chapter id="manual.util.memory" xreflabel="Memory"> <section id="std.util.memory" xreflabel="Memory">
<?dbhtml filename="memory.html"?> <?dbhtml filename="memory.html"?>
<title>Memory</title> <title>Memory</title>
<para> <para>
...@@ -118,14 +118,14 @@ ...@@ -118,14 +118,14 @@
parse="xml" href="shared_ptr.xml"> parse="xml" href="shared_ptr.xml">
</xi:include> </xi:include>
</chapter> </section>
<!-- Chapter 04 : Traits --> <!-- Section 04 : Traits -->
<chapter id="manual.util.traits" xreflabel="Traits"> <section id="std.util.traits" xreflabel="Traits">
<?dbhtml filename="traits.html"?> <?dbhtml filename="traits.html"?>
<title>Traits</title> <title>Traits</title>
<para> <para>
</para> </para>
</chapter> </section>
</part> </chapter>
// Copyright (C) 2007, 2009 Free Software Foundation, Inc. // Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file include/c++0x_warning.h /** @file c++0x_warning.h
* This is a Standard C++ Library header. * This is a Standard C++ Library header.
*/ */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment