+2008-03-25 Benjamin Kosnik <bkoz@redhat.com>
+
+ * scripts/run_doxygen: Remove html_output_dir. Downgrade to
+ Doxygen 1.5.1.
+ * doc/doxygen/style.css: Delete.
+ * doc/doxygen/user.cfg.in: Regenerate with Doxygen 1.5.1.
+ (INPUT): Update.
+ (PREDEFINED): Update.
+ (HTML_OUTPUT): Remove html_output_dir, use html.
+ (HTML_STYLESHEET): Remove style.css.
+ * doc/doxygen/tables.html: Remove style.css use.
+ * doc/doxygen/mainpage.html: Nested lists for Namespaces and Classes.
+ * doc/doxygen/doxygroups.cc: Namespace edits.
+ * doc/doxygen/Intro.3: Correct typo.
+
+ * doc/xml/api.xml: Add gcc-4.3 links.
+ * doc/html/api.html: Regenerate.
+
+ * include/debug/debug.h: Document namepaces here.
+ * include/parallel/base.h: Same.
+ * include/ext/typelist.h: Same.
+ * include/ext/pb_ds/tag_and_trait.hpp: Same.
+
+ * include/tr1_impl/random: Adjust line break.
+ * include/tr1_impl/unordered_map: Correct and or add markup.
+ * include/tr1_impl/boost_shared_ptr.h: Correct and or add markup.
+ * include/tr1_impl/functional_hash.h: Same.
+ * include/tr1_impl/cmath: Same.
+ * include/tr1_impl/functional: Same.
+ * include/tr1_impl/unordered_set: Same.
+ * include/tr1_impl/complex: Same.
+ * include/tr1_impl/type_traits: Same.
+ * include/tr1_impl/regex: Same.
+ * include/tr1_impl/array: Same.
+ * include/std/tuple: Same.
+ * include/std/date_time: Same.
+ * include/std/system_error: Same.
+ * include/std/type_traits: Same.
+ * include/ext/enc_filebuf.h: Same.
+ * include/ext/throw_allocator.h: Same.
+ * include/ext/pool_allocator.h: Same.
+ * include/ext/bitmap_allocator.h: Same.
+ * include/ext/concurrence.h: Same.
+ * include/ext/codecvt_specializations.h: Same.
+ * include/ext/stdio_sync_filebuf.h: Same.
+ * include/ext/array_allocator.h: Same.
+ * include/ext/mt_allocator.h: Same.
+ * include/bits/locale_classes.h: Same.
+ * include/bits/locale_facets.h: Same.
+ * include/bits/codecvt.h: Same.
+ * include/bits/char_traits.h: Same.
+ * include/bits/allocator.h: Same.
+ * include/bits/locale_facets_nonio.h: Same.
+ * include/tr1/poly_laguerre.tcc: Same.
+ * include/tr1/riemann_zeta.tcc: Same.
+ * include/tr1/beta_function.tcc: Same.
+ * include/tr1/tuple: Same.
+ * include/tr1/exp_integral.tcc: Same.
+ * include/tr1/gamma.tcc: Same.
+ * include/tr1/hypergeometric.tcc: Same.
+ * include/tr1/modified_bessel_func.tcc: Same.
+ * include/tr1/legendre_function.tcc: Same.
+ * include/tr1/type_traits: Same.
+ * include/tr1/special_function_util.h: Same.
+ * include/tr1/bessel_function.tcc: Same.
+ * include/tr1/cmath: Same.
+ * include/tr1/poly_hermite.tcc: Same.
+ * include/tr1/ell_integral.tcc: Same.
+ * config/abi/compatibility.h: Adjust file name.
+
+ * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust
+ line numbers.
+ * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same.
+ * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same.
+
2008-03-23 Paolo Carlini <pcarlini@suse.de>
* doc/xml/faq.xml: Fix various links.
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
-/** @file compatibility.h
+/** @file bits/compatibility.h
* This is an internal header file, included by other library sources.
* You should not attempt to use it directly.
*/
.\" t
-.\" This man page is released under the FDL as part of libstdc++.
+.\" This man page is released under the GPL as part of libstdc++.
.TH C++Intro 3 "20 May 2004" "GNU libstdc++" "Standard C++ Library"
.SH NAME
C++Intro \- Introduction to the GNU libstdc++ man pages
/*
- Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005, 2008 Free Software Foundation, Inc.
See license.html for license.
This just provides documentation for stuff that doesn't need to be in the
// // // // // // // // // // // // // // // // // // // // // // // //
/** @namespace std
- * @brief Everything defined by the ISO C++ Standard is within
- * namespace <a class="el" href="namespacestd.html">std</a>.
+ * @brief ISO C++ entities toplevel namespace is std.
*/
/** @namespace std::__detail
- * @brief Implementation details not part of the namespace <a class="el"
- * href="namespacestd.html">std</a> interface.
+ * @brief Implementation details not part of the namespace std interface.
*/
/** @namespace std::tr1
- * @brief Everything defined by the ISO C++ TR1 is within namespace std::tr1.
+ * @brief ISO C++ TR1 entities toplevel namespace is std::tr1.
*/
/** @namespace std::tr1::__detail
* @brief Implementation details not part of the namespace std::tr1 interface.
*/
+/** @namespace std::regex_constants
+ * @brief ISO C++ 0x entities sub namespace for regex.
+*/
+/** @namespace std::placeholders
+ * @brief ISO C++ 0x entities sub namespace for functional.
+*/
/** @namespace __gnu_cxx
* @brief GNU extensions for public use.
*/
/** @namespace __gnu_cxx::__detail
- * @brief Implementation details not part of the namespace __gnu_cxx
+ * @brief Implementation details not part of the namespace __gnu_cxx
* interface.
*/
-/** @namespace __gnu_cxx::typelist
- * @brief GNU typelist extensions for public compile-time use.
-*/
/** @namespace __gnu_internal
* @brief GNU implemenation details, not for public use or
* export. Used only when anonymous namespaces cannot be substituted.
*/
-/** @namespace __gnu_debug
- * @brief GNU debug classes for public use.
-*/
// // // // // // // // // // // // // // // // // // // // // // // //
/** @addtogroup SGIextensions STL extensions from SGI
Because libstdc++ based its implementation of the STL subsections of
<html>
<head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libstdc++ Source: Main Index</title>
-<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#ffffff">
<p>Here are entry points to all the pages generated by Doxygen:
<ul>
- <li><a href="modules.html">Modules</a>
- <li><a href="namespaces.html">Namespace List</a>
- <li><a href="hierarchy.html">Class List</a>
- <li><a href="annotated.html">Class Annotated List</a>
- <li><a href="classes.html">Class Alphabetical Index</a>
- <li><a href="globals_func.html">Function Alphabetical List</a>
- <li><a href="files.html">Source File List</a>
- <li><a href="todo.html">TODO List</a> (This is incomplete... how ironic.)
+ <li><a href="modules.html">Modules</a></li>
+
+ <li>Namespaces
+ <ul>
+ <li><a href="namespaces.html">List</a></li>
+ <li><a href="namespacemembers.html">Members</a></li>
+ </ul>
+ </li>
+
+ <li>Classes
+ <ul>
+ <li><a href="classes.html">List</a></li>
+ <li><a href="hierarchy.html">Hierarchy</a></li>
+ <li><a href="functions.html">Members</a></li>
+ </ul>
+ </li>
+
+ <li><a href="files.html">Source Files</a></li>
+ <li><a href="todo.html">TODO List</a></li>
</ul>
</p>
+++ /dev/null
-BODY {
- background: white;
- font-size: small;
-}
-H1 { text-align: center; font-size: large }
-H2 { text-align: left; font-size: medium; }
-H3 { text-align: left; font-size: small; }
-CODE { font-size: small; }
-CAPTION { font-weight: normal }
-A.qindex {}
-A.qindexRef {}
-A.el { text-decoration: none; font-size: small; font-weight: normal }
-A.elRef { text-decoration: none; font-size: small; font-weight: normal }
-A.code { text-decoration: none; font-weight: normal; color: #4444ee }
-A.codeRef { font-weight: normal; color: #4444ee }
-A:hover { text-decoration: none; background-color: #f2f2ff }
-DL.el { margin-left: -1cm }
-DIV.fragment { width: 100%; border: none; background-color: #eeeeee }
-DIV.ah {
- background-color: black;
- font-weight: normal;
- color: #ffffff;
- margin-bottom: 3px;
- margin-top: 3px
-}
-DIV.groupHeader {
- margin-left: 16px;
- margin-top: 12px;
- margin-bottom: 6px;
- font-weight: normal
-}
-DIV.groupText { margin-left: 16px; font-style: italic; font-size: small }
-TD.md { background-color: #f2f2ff; font-size: small; }
-TD.mdname1 { background-color: #f2f2ff; font-size: small; color: #602020; }
-TD.mdname {
- background-color: #f2f2ff;
- font-weight: normal;
- font-size: small;
- color: #602020;
- width: 600px
-}
-TD.indexkey {
- background-color: #eeeeff;
- font-weight: normal;
- font-size: small;
- padding-right : 10px;
- padding-top : 2px;
- padding-left : 10px;
- padding-bottom : 2px;
- margin-left : 0px;
- margin-right : 0px;
- margin-top : 2px;
- margin-bottom : 2px
-}
-TD.indexvalue {
- background-color: #eeeeff;
- font-style: italic;
- font-size: small;
- padding-right : 10px;
- padding-top : 2px;
- padding-left : 10px;
- padding-bottom : 2px;
- margin-left : 0px;
- margin-right : 0px;
- margin-top : 2px;
- margin-bottom : 2px
-}
-span.keyword { color: #008000 }
-span.keywordtype { color: #604020 }
-span.keywordflow { color: #e08000 }
-span.comment { color: #800000 }
-span.preprocessor { color: #806020 }
-span.stringliteral { color: #002080 }
-span.charliteral { color: #008080 }
<html>
<head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Tables</title>
-<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#ffffff">
-# Doxyfile 1.5.4
+# Doxyfile 1.5.1
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project
# Project related configuration options
#---------------------------------------------------------------------------
-# This tag specifies the encoding used for all characters in the
-# config file that follow. The default is UTF-8 which is also the
-# encoding used for all text before the first occurrence of this
-# tag. Doxygen uses libiconv (or the iconv built into libc) for the
-# transcoding. See http://www.gnu.org/software/libiconv for the list
-# of possible encodings.
-
-DOXYFILE_ENCODING = UTF-8
-
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
# by quotes) that should identify the project.
OUTPUT_LANGUAGE = English
+# This tag can be used to specify the encoding used in the generated output.
+# The encoding is not always determined by the language that is chosen,
+# but also whether or not the output is meant for Windows or non-Windows users.
+# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
+# forces the Windows encoding (this is the default for the Windows binary),
+# whereas setting the tag to NO uses a Unix-style encoding (the default for
+# all platforms other than Windows).
+
+USE_WINDOWS_ENCODING = NO
+
# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
# include brief member descriptions after the members that are listed in
# the file and class documentation (similar to JavaDoc).
BRIEF_MEMBER_DESC = NO
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will
-# prepend the brief description of a member or function before the
-# detailed description. Note: if both HIDE_UNDOC_MEMBERS and
-# BRIEF_MEMBER_DESC are set to NO, the brief descriptions will be
-# completely suppressed.
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
REPEAT_BRIEF = YES
# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
# will interpret the first line (until the first dot) of a JavaDoc-style
# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like regular Qt-style comments
-# (thus requiring an explicit @brief command for a brief description.)
+# comments will behave just like the Qt-style comments (thus requiring an
+# explicit @brief command for a brief description.
JAVADOC_AUTOBRIEF = NO
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
-# interpret the first line (until the first dot) of a Qt-style
-# comment as the brief description. If set to NO, the comments
-# will behave just like regular Qt-style comments (thus requiring
-# an explicit \brief command for a brief description.)
-
-QT_AUTOBRIEF = NO
-
# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
# treat a multi-line C++ special comment block (i.e. a block of //! or ///
# comments) as a brief description. This used to be the default behaviour.
BUILTIN_STL_SUPPORT = NO
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-
-CPP_CLI_SUPPORT = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip
-# sources only. Doxygen will parse them like normal C++ but will
-# assume all classes use public instead of private inheritance when no
-# explicit protection keyword is present.
-
-SIP_SUPPORT = NO
-
# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
# tag is set to YES, then doxygen will reuse the documentation of the first
# member in the group (if any) for the other members of the group. By default
SUBGROUPING = YES
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct (or union) is
-# documented as struct with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically
-# be useful for C code where the coding convention is that all structs are
-# typedef'ed and only the typedef is referenced never the struct's name.
-
-TYPEDEF_HIDES_STRUCT = NO
-
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_LOCAL_METHODS = YES
-# If this flag is set to YES, the members of anonymous namespaces will
-# be extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the
-# base name of the file that contains the anonymous namespace. By
-# default anonymous namespace are hidden.
-
-EXTRACT_ANON_NSPACES = NO
-
# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
# undocumented members of documented classes, files or namespaces.
# If set to NO (the default) these members will be included in the
SHOW_USED_FILES = YES
-# If the sources in your project are distributed over multiple
-# directories then setting the SHOW_DIRECTORIES tag to YES will show
-# the directory hierarchy in the documentation. The default is NO.
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
SHOW_DIRECTORIES = YES
-# The FILE_VERSION_FILTER tag can be used to specify a program or
-# script that doxygen should invoke to get the current version for
-# each file (typically from the version control system). Doxygen will
-# invoke the program by executing (via popen()) the command <command>
-# <input-file>, where <command> is the value of the
-# FILE_VERSION_FILTER tag, and <input-file> is the name of an input
-# file provided by doxygen. Whatever the program writes to standard
-# output is used as the file version. See the manual for examples.
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from the
+# version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
FILE_VERSION_FILTER =
# configuration options related to the input files
#---------------------------------------------------------------------------
-# The INPUT tag can be used to specify the files and/or directories
-# that contain documented source files. You may enter file names like
-# "myfile.cpp" or directories like "/usr/src/myproject". Separate the
-# files or directories with spaces.
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
-INPUT = @srcdir@/doc/doxygen/doxygroups.cc \
- @srcdir@/include/precompiled/stdc++.h \
- @srcdir@/include/precompiled/stdtr1c++.h \
- @srcdir@/include/precompiled/extc++.h \
- @srcdir@/libsupc++/cxxabi.h \
+INPUT = @srcdir@/libsupc++/cxxabi.h \
+ @srcdir@/libsupc++/cxxabi-forced.h \
@srcdir@/libsupc++/exception \
@srcdir@/libsupc++/new \
@srcdir@/libsupc++/typeinfo \
- include/@host_alias@/bits \
- include/bits \
- include/debug \
- include/parallel \
- include/ext \
- include/tr1 \
- include/tr1_impl \
include/algorithm \
include/array \
include/bitset \
- include/cassert \
- include/ccomplex \
- include/cctype \
- include/cerrno \
- include/cfenv \
- include/cfloat \
- include/cinttypes \
- include/ciso646 \
- include/climits \
- include/clocale \
- include/cmath \
- include/csetjmp \
- include/csignal \
- include/cstdarg \
- include/cstdbool \
- include/cstddef \
- include/cstdint \
- include/cstdio \
- include/cstdlib \
- include/cstring \
- include/ctgmath \
- include/ctime \
- include/cwchar \
- include/cwctype \
+ include/date_time \
include/deque \
include/fstream \
include/functional \
include/utility \
include/valarray \
include/vector \
+ include/cassert \
+ include/ccomplex \
+ include/cctype \
+ include/cerrno \
+ include/cfenv \
+ include/cfloat \
+ include/cinttypes \
+ include/ciso646 \
+ include/climits \
+ include/clocale \
+ include/cmath \
+ include/csetjmp \
+ include/csignal \
+ include/cstdarg \
+ include/cstdbool \
+ include/cstddef \
+ include/cstdint \
+ include/cstdio \
+ include/cstdlib \
+ include/cstring \
+ include/ctgmath \
+ include/ctime \
+ include/cwchar \
+ include/cwctype \
include/backward/hash_map \
include/backward/hash_set \
+ include/backward/strstream \
include/debug/bitset \
include/debug/deque \
include/debug/list \
include/debug/map \
include/debug/set \
include/debug/string \
+ include/debug/unordered_map \
+ include/debug/unordered_set \
include/debug/vector \
include/ext/algorithm \
include/ext/functional \
include/ext/rb_tree \
include/ext/rope \
include/ext/slist \
- include/ext/pb_ds \
- include/ext/pb_ds/detail \
include/parallel/algorithm \
include/parallel/numeric \
include/tr1/array \
include/tr1/cwchar \
include/tr1/cwctype \
include/tr1/functional \
- include/tr1/hashtable.h \
include/tr1/memory \
include/tr1/random \
include/tr1/regex \
include/tr1/type_traits \
include/tr1/unordered_map \
include/tr1/unordered_set \
- include/tr1_impl/utility \
include/tr1_impl/array \
include/tr1_impl/cctype \
include/tr1_impl/cfenv \
include/tr1_impl/hashtable \
include/tr1_impl/random \
include/tr1_impl/regex \
- include/tr1_impl/tuple \
include/tr1_impl/type_traits \
include/tr1_impl/unordered_map \
include/tr1_impl/unordered_set \
- include/tr1_impl/utility
-
-# This tag can be used to specify the character encoding of the source
-# files that doxygen parses. Internally doxygen uses the UTF-8
-# encoding, which is also the default input encoding. Doxygen uses
-# libiconv (or the iconv built into libc) for the transcoding. See
-# http://www.gnu.org/software/libiconv for the list of possible
-# encodings.
-
-INPUT_ENCODING = UTF-8
+ include/tr1_impl/utility \
+ include/@host_alias@/bits \
+ include/backward \
+ include/bits \
+ include/debug \
+ include/parallel \
+ include/tr1 \
+ include/tr1_impl \
+ include/ext \
+ include/ext/pb_ds \
+ include/ext/pb_ds/detail \
+ @srcdir@/doc/doxygen/doxygroups.cc
# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank the following patterns are tested:
# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
FILE_PATTERNS = *.h \
*.hpp \
*extc++.h* \
*/.svn/*
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol
-# names (namespaces, classes, functions, etc.) that should be excluded
-# from the output. The symbol name can be a fully qualified name, a
-# word, or if the wildcard * is used, a substring. Examples:
-# ANamespace, AClass, AClass::ANamespace, ANamespace::*Test
-
-EXCLUDE_SYMBOLS =
-
# The EXAMPLE_PATH tag can be used to specify one or more files or
# directories that contain example code fragments that are included (see
# the \include command).
# configuration options related to source browsing
#---------------------------------------------------------------------------
-# If the SOURCE_BROWSER tag is set to YES then a list of source files
-# will be generated. Documented entities will be cross-referenced with
-# these sources. Note: To get rid of all source code in the generated
-# output, make sure also VERBATIM_HEADERS is set to NO. If you have
-# enabled CALL_GRAPH or CALLER_GRAPH then you must also enable this
-# option. If you don't then doxygen will produce a warning and turn it
-# on anyway
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
SOURCE_BROWSER = YES
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `html' will be used as the default path.
-HTML_OUTPUT = @html_output_dir@
+HTML_OUTPUT = html
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
# the style sheet file to the HTML output directory, so don't put your own
# stylesheet in the HTML output directory as well, or it will be erased!
-HTML_STYLESHEET = @srcdir@/doc/doxygen/style.css
+HTML_STYLESHEET =
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
# files or namespaces will be aligned in HTML using tables. If set to
GENERATE_HTMLHELP = NO
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded. For this to work a browser that supports
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
-
-HTML_DYNAMIC_SECTIONS = NO
-
# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
# be used to specify the file name of the resulting .chm file. You
# can add a path in front of the file if the result should not be
# which can be used by a validating XML parser to check the
# syntax of the XML files.
-#XML_SCHEMA =
XML_SCHEMA =
# The XML_DTD tag can be used to specify an XML DTD,
# syntax of the XML files.
XML_DTD =
-#XML_DTD = http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd
# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
# dump the program listings (including syntax highlighting
# instead of the = operator.
PREDEFINED = __GTHREADS \
+ "_GLIBCXX_STD_P= " \
+ "_GLIBCXX_STD_D= " \
_GLIBCXX_STD=std \
- _GLIBCXX_TR1=tr1 \
+ "_GLIBCXX_TR1= " \
+ "_GLIBCXX_BEGIN_NAMESPACE_TR1= " \
+ "_GLIBCXX_END_NAMESPACE_TR1= " \
"_GLIBCXX_BEGIN_NAMESPACE(name)=namespace name { " \
"_GLIBCXX_BEGIN_NESTED_NAMESPACE(name, unused)=namespace name { " \
_GLIBCXX_END_NAMESPACE=} \
_GLIBCXX_END_NESTED_NAMESPACE=} \
"_GLIBCXX_TEMPLATE_ARGS=... " \
+ _GLIBCXX_INCLUDE_AS_CXX0X \
_GLIBCXX_DEPRECATED \
_GLIBCXX_USE_WCHAR_T \
_GLIBCXX_USE_LONG_LONG \
__glibcxx_class_requires3=// \
__glibcxx_class_requires4=//
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES
-# then this tag can be used to specify a list of macro names that
-# should be expanded. The macro definition that is found in the
-# sources will be used. Use the PREDEFINED tag if you want to use a
-# different macro definition.
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
EXPAND_AS_DEFINED =
CLASS_DIAGRAMS = YES
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to
-# produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to
-# specify the directory where the mscgen tool resides. If left empty the tool is assumed to
-# be found in the default search path.
-
-MSCGEN_PATH =
-
# If set to YES, the inheritance and collaboration graphs will hide
# inheritance and usage relations if the target is undocumented
# or is not a class.
INCLUDED_BY_GRAPH = NO
-# If the CALL_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES
-# then doxygen will generate a call dependency graph for every global
-# function or class method. Note that enabling this option will
-# significantly increase the time of a run. So in most cases it will
-# be better to enable call graphs for selected functions only using
-# the \callgraph command.
+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
+# generate a call dependency graph for every global function or class method.
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command.
CALL_GRAPH = NO
-# If the CALLER_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES
-# then doxygen will generate a caller dependency graph for every
-# global function or class method. Note that enabling this option
-# will significantly increase the time of a run. So in most cases it
-# will be better to enable caller graphs for selected functions only
-# using the \callergraph command.
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will
+# generate a caller dependency graph for every global function or class method.
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command.
CALLER_GRAPH = NO
DOTFILE_DIRS =
-# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum
-# number of nodes that will be shown in the graph. If the number of
-# nodes in a graph becomes larger than this value, doxygen will
-# truncate the graph, which is visualized by representing a node as a
-# red box. Note that doxygen if the number of direct children of the
-# root node in a graph is already larger than MAX_DOT_GRAPH_NOTES then
-# the graph will not be shown at all. Also note that the size of a
-# graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_WIDTH = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
-DOT_GRAPH_MAX_NODES = 50
+MAX_DOT_GRAPH_HEIGHT = 1024
# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
# graphs generated by dot. A depth value of 3 means that only nodes reachable
# from the root by following a path via at most 3 edges will be shown. Nodes
# that lay further from the root node will be omitted. Note that setting this
# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# code bases. Also note that a graph may be further truncated if the graph's
+# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH
+# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default),
+# the graph is not depth-constrained.
MAX_DOT_GRAPH_DEPTH = 0
<a class="ulink" href="http://www.fsf.org/" target="_top">FSF
</a>
- </p></div><div><div class="legalnotice"><a id="id375791"></a><p>
+ </p></div><div><div class="legalnotice"><a id="id478877"></a><p>
<a class="ulink" href="17_intro/license.html" target="_top">License
</a>
</p></div></div></div><hr /></div><p>
</p></li><li><p>
<a class="ulink" href="libstdc++-html-USERS-4.2/index.html" target="_top">for the 4.2 release
</a>
+ </p></li><li><p>
+ <a class="ulink" href="libstdc++-html-USERS-4.3/index.html" target="_top">for the 4.3 release
+ </a>
</p></li><li><p>
<a class="ulink" href="latest-doxygen/index.html" target="_top">"the latest collection"
</a>
</ulink>
</para>
</listitem>
+ <listitem>
+ <para>
+ <ulink url="libstdc++-html-USERS-4.3/index.html">for the 4.3 release
+ </ulink>
+ </para>
+ </listitem>
<listitem>
<para>
<ulink url="latest-doxygen/index.html">"the latest collection"
// Allocators -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
* @brief The "standard" allocator, as per [20.4].
*
* Further details:
- * http://gcc.gnu.org/onlinedocs/libstdc++/20_util/allocator.html
+ * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt04ch11.html
*/
template<typename _Tp>
class allocator: public __glibcxx_base_allocator<_Tp>
{ };
- /// @brief 21.1.3.1 char_traits specializations
+ /// 21.1.3.1 char_traits specializations
template<>
struct char_traits<char>
{
#ifdef _GLIBCXX_USE_WCHAR_T
- /// @brief 21.1.3.2 char_traits specializations
+ /// 21.1.3.2 char_traits specializations
template<>
struct char_traits<wchar_t>
{
// Locale support (codecvt) -*- C++ -*-
-// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
_GLIBCXX_BEGIN_NAMESPACE(std)
- /// @brief Empty base class for codecvt facet [22.2.1.5].
+ /// Empty base class for codecvt facet [22.2.1.5].
class codecvt_base
{
public:
template<typename _InternT, typename _ExternT, typename _StateT>
locale::id codecvt<_InternT, _ExternT, _StateT>::id;
- /// @brief class codecvt<char, char, mbstate_t> specialization.
+ /// class codecvt<char, char, mbstate_t> specialization.
template<>
class codecvt<char, char, mbstate_t>
: public __codecvt_abstract_base<char, char, mbstate_t>
};
#ifdef _GLIBCXX_USE_WCHAR_T
- /// @brief class codecvt<wchar_t, char, mbstate_t> specialization.
+ /// class codecvt<wchar_t, char, mbstate_t> specialization.
template<>
class codecvt<wchar_t, char, mbstate_t>
: public __codecvt_abstract_base<wchar_t, char, mbstate_t>
};
#endif //_GLIBCXX_USE_WCHAR_T
- /// @brief class codecvt_byname [22.2.1.6].
+ /// class codecvt_byname [22.2.1.6].
template<typename _InternT, typename _ExternT, typename _StateT>
class codecvt_byname : public codecvt<_InternT, _ExternT, _StateT>
{
collate<wchar_t>::_M_transform(wchar_t*, const wchar_t*, size_t) const;
#endif
- /// @brief class collate_byname [22.2.4.2].
+ /// class collate_byname [22.2.4.2].
template<typename _CharT>
class collate_byname : public collate<_CharT>
{
use_facet<ctype<wchar_t> >(const locale& __loc);
#endif //_GLIBCXX_USE_WCHAR_T
- /// @brief class ctype_byname [22.2.1.2].
+ /// class ctype_byname [22.2.1.2].
template<typename _CharT>
class ctype_byname : public ctype<_CharT>
{
numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc);
#endif
- /// @brief class numpunct_byname [22.2.3.2].
+ /// class numpunct_byname [22.2.3.2].
template<typename _CharT>
class numpunct_byname : public numpunct<_CharT>
{
template<typename _CharT, typename _InIter>
locale::id time_get<_CharT, _InIter>::id;
- /// @brief class time_get_byname [22.2.5.2].
+ /// class time_get_byname [22.2.5.2].
template<typename _CharT, typename _InIter>
class time_get_byname : public time_get<_CharT, _InIter>
{
template<typename _CharT, typename _OutIter>
locale::id time_put<_CharT, _OutIter>::id;
- /// @brief class time_put_byname [22.2.5.4].
+ /// class time_put_byname [22.2.5.4].
template<typename _CharT, typename _OutIter>
class time_put_byname : public time_put<_CharT, _OutIter>
{
const char*);
#endif
- /// @brief class moneypunct_byname [22.2.6.4].
+ /// class moneypunct_byname [22.2.6.4].
template<typename _CharT, bool _Intl>
class moneypunct_byname : public moneypunct<_CharT, _Intl>
{
messages<wchar_t>::do_get(catalog, int, int, const wstring&) const;
#endif
- /// @brief class messages_byname [22.2.7.2].
+ /// class messages_byname [22.2.7.2].
template<typename _CharT>
class messages_byname : public messages<_CharT>
{
*/
// Debug mode namespaces.
+
+/**
+ * @namespace std::__debug
+ * @brief GNU debug code, replaces standard behavior with debug behavior.
+ */
namespace std
{
namespace __debug { }
}
+/** @namespace __gnu_debug
+ * @brief GNU debug classes for public use.
+*/
namespace __gnu_debug
{
using namespace std::__debug;
using std::size_t;
using std::ptrdiff_t;
- /// @brief Base class.
+ /// Base class.
template<typename _Tp>
class array_allocator_base
{
};
};
+ /// Primary template
template<typename _Tp>
class bitmap_allocator : private free_list
{
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
- /// @brief Extension to use iconv for dealing with character encodings.
+ /// Extension to use iconv for dealing with character encodings.
// This includes conversions and comparisons between various character
// sets. This object encapsulates data that may need to be shared between
// char_traits, codecvt and ctype.
}
};
- /// @brief encoding_char_traits.
+ /// encoding_char_traits
// Custom traits type with encoding_state for the state type, and the
// associated fpos<encoding_state> for the position type, all other
// bits equivalent to the required char_traits instantiations.
using __gnu_cxx::encoding_state;
- /// @brief codecvt<InternT, _ExternT, encoding_state> specialization.
+ /// codecvt<InternT, _ExternT, encoding_state> specialization.
// This partial specialization takes advantage of iconv to provide
// code conversions between a large number of character encodings.
template<typename _InternT, typename _ExternT>
{ return &_M_mutex; }
};
- /// @brief Scoped lock idiom.
+ /// Scoped lock idiom.
// Acquire the mutex here with a constructor call, then release with
// the destructor call in accordance with RAII style.
class __scoped_lock
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
- /// @brief class enc_filebuf.
+ /// class enc_filebuf.
template<typename _CharT>
class enc_filebuf
: public std::basic_filebuf<_CharT, encoding_char_traits<_CharT> >
typedef void (*__destroy_handler)(void*);
- /// @brief Base class for pool object.
+ /// Base class for pool object.
struct __pool_base
{
// Using short int as type for the binmap implies we are never
};
#endif
- /// @brief Policy for shared __pool objects.
+ /// Policy for shared __pool objects.
template<template <bool> class _PoolTp, bool _Thread>
struct __common_pool_policy : public __common_pool_base<_PoolTp, _Thread>
{
};
#endif
- /// @brief Policy for individual __pool objects.
+ /// Policy for individual __pool objects.
template<typename _Tp, template <bool> class _PoolTp, bool _Thread>
struct __per_type_pool_policy
: public __per_type_pool_base<_Tp, _PoolTp, _Thread>
};
- /// @brief Base class for _Tp dependent member functions.
+ /// Base class for _Tp dependent member functions.
template<typename _Tp>
class __mt_alloc_base
{
* the "global" list).
*
* Further details:
- * http://gcc.gnu.org/onlinedocs/libstdc++/ext/mt_allocator.html
+ * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt12ch32.html
*/
template<typename _Tp,
typename _Poolp = __common_pool_policy<__pool, __thread_default> >
/**
* @namespace __gnu_pbds
- * @brief GNU extension policy-based data structures for public use.
+ * @brief GNU extensions for policy-based data structures for public use.
*/
-
namespace __gnu_pbds
{
// A trivial iterator tag. Signifies that the iterators has none of
};
- /// @brief class __pool_alloc.
+ /// class __pool_alloc.
template<typename _Tp>
class __pool_alloc : private __pool_alloc_base
{
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
- /// @brief class stdio_sync_filebuf.
+ /// class stdio_sync_filebuf.
template<typename _CharT, typename _Traits = std::char_traits<_CharT> >
class stdio_sync_filebuf : public std::basic_streambuf<_CharT, _Traits>
{
std::tr1::mt19937 _M_generator;
};
+ /// Thown by throw_allocator.
struct forced_exception_error : public std::exception
{ };
#endif
}
+ /// Base class.
class throw_allocator_base
{
public:
static size_t _S_label;
};
-
+ /// Allocator class with logging and exception control.
template<typename T>
class throw_allocator : public throw_allocator_base
{
twister_rand_gen throw_allocator_base::_S_g;
- throw_allocator_base::map_type
+ throw_allocator_base::map_type
throw_allocator_base::_S_map;
double throw_allocator_base::_S_throw_prob;
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+/** @namespace __gnu_cxx::typelist
+ * @brief GNU typelist extensions for public compile-time use.
+*/
namespace typelist
{
struct null_type { };
// Parallel mode namespaces.
+
+/**
+ * @namespace std::__parallel
+ * @brief GNU parallel code, replaces standard behavior with parallel behavior.
+ */
namespace std
{
namespace __parallel { }
/**
* @namespace __gnu_parallel
- * @brief GNU parallel classes for public use.
+ * @brief GNU parallel code for public use.
*/
namespace __gnu_parallel
{
namespace std
{
// duration types
-
+
+ /// nanoseconds
class nanoseconds
{
public:
class minutes;
class hours;
- // timepoint type
+ /// timepoint type
class system_time
{
public:
extern const error_category& system_category;
+ /// error_category
struct error_category
{
error_category() { }
operator=(const error_category&);
};
+ /// error_code
struct error_code
{
error_code() throw()
const error_category* _M_cat;
};
+ /// Thrown to indicate error code of underlying system.
class system_error : public std::runtime_error
{
private:
}
};
+ /// tuple
template<typename... _Elements>
class tuple : public _Tuple_impl<0, _Elements...>
{
}
};
- template<> class tuple<> { };
- // 2-element tuple, with construction and assignment from a pair.
+ template<>
+ class tuple<> { };
+
+ /// tuple (2-element), with construction and assignment from a pair.
template<typename _T1, typename _T2>
class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2>
{
template<typename _Tp>
struct tuple_size;
- /// @brief class tuple_size
+ /// class tuple_size
template<typename... _Elements>
struct tuple_size<tuple<_Elements...> >
{
// <type_traits> -*- C++ -*-
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2008 Free Software Foundation, Inc.
//
// 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
namespace std
{
// Primary classification traits.
+
+ /// is_lvalue_reference
template<typename>
struct is_lvalue_reference
: public false_type { };
struct is_lvalue_reference<_Tp&>
: public true_type { };
+ /// is_rvalue_reference
template<typename>
struct is_rvalue_reference
: public false_type { };
: public true_type { };
// Secondary classification traits.
+
+ /// is_reference
template<typename _Tp>
struct is_reference
: public integral_constant<bool, (is_lvalue_reference<_Tp>::value
{ };
// Reference transformations.
+
+ /// remove_reference
template<typename _Tp>
struct remove_reference
{ typedef _Tp type; };
struct __add_lvalue_reference_helper<_Tp, false, true>
{ typedef typename remove_reference<_Tp>::type& type; };
+ /// add_lvalue_reference
template<typename _Tp>
struct add_lvalue_reference
: public __add_lvalue_reference_helper<_Tp>
struct __add_rvalue_reference_helper<_Tp, true>
{ typedef _Tp&& type; };
+ /// add_rvalue_reference
template<typename _Tp>
struct add_rvalue_reference
: public __add_rvalue_reference_helper<_Tp>
{ };
// Scalar properties and transformations.
+
template<typename _Tp,
bool = is_integral<_Tp>::value,
bool = is_floating_point<_Tp>::value>
: public integral_constant<bool, _Tp(-1) < _Tp(0)>
{ };
+ /// is_signed
template<typename _Tp>
struct is_signed
: public integral_constant<bool, __is_signed_helper<_Tp>::value>
{ };
+ /// is_unsigned
template<typename _Tp>
struct is_unsigned
: public integral_constant<bool, (is_arithmetic<_Tp>::value
{ };
// Member introspection.
+
+ /// is_pod
template<typename _Tp>
struct is_pod
: public integral_constant<bool, __is_pod(_Tp)>
{ };
+ /// has_trivial_default_constructor
template<typename _Tp>
struct has_trivial_default_constructor
: public integral_constant<bool, __has_trivial_constructor(_Tp)>
{ };
+ /// has_trivial_copy_constructor
template<typename _Tp>
struct has_trivial_copy_constructor
: public integral_constant<bool, __has_trivial_copy(_Tp)>
{ };
+ /// has_trivial_assign
template<typename _Tp>
struct has_trivial_assign
: public integral_constant<bool, __has_trivial_assign(_Tp)>
{ };
+ /// has_trivial_destructor
template<typename _Tp>
struct has_trivial_destructor
: public integral_constant<bool, __has_trivial_destructor(_Tp)>
{ };
+ /// has_nothrow_default_destructor
template<typename _Tp>
struct has_nothrow_default_constructor
: public integral_constant<bool, __has_nothrow_constructor(_Tp)>
{ };
+ /// has_nothrow_copy_destructor
template<typename _Tp>
struct has_nothrow_copy_constructor
: public integral_constant<bool, __has_nothrow_copy(_Tp)>
{ };
+ /// has_nothrow_assign
template<typename _Tp>
struct has_nothrow_assign
: public integral_constant<bool, __has_nothrow_assign(_Tp)>
{ };
+ /// is_base_of
template<typename _Base, typename _Derived>
struct is_base_of
: public integral_constant<bool, __is_base_of(_Base, _Derived)>
template<typename _From, typename _To,
bool = (is_void<_From>::value || is_void<_To>::value
|| is_function<_To>::value || is_array<_To>::value
- // This special case is here only to avoid warnings.
+ // This special case is here only to avoid warnings.
|| (is_floating_point<typename
remove_reference<_From>::type>::value
&& __is_int_or_cref<_To>::__value))>
// XXX FIXME
// The C++0x specifications are different, see N2255.
+ /// is_convertible
template<typename _From, typename _To>
struct is_convertible
: public integral_constant<bool,
};
};
+ /**
+ * @brief Alignment type.
+ *
+ * The value of _Align is a default-alignment which shall be the
+ * most stringent alignment requirement for any C++ object type
+ * whose size is no greater than _Len (3.9). The member typedef
+ * type shall be a POD type suitable for use as uninitialized
+ * storage for any object whose size is at most _Len and whose
+ * alignment is a divisor of _Align.
+ */
template<std::size_t _Len, std::size_t _Align =
__alignof__(typename __aligned_storage_msa<_Len>::__type)>
struct aligned_storage
// Define a nested type if some predicate holds.
+ /// Primary template.
template<bool, typename _Tp = void>
struct enable_if
{ };
+ /// Partial specialization for true.
template<typename _Tp>
struct enable_if<true, _Tp>
{ typedef _Tp type; };
- // Like a conditional expression, but for types. If true, first, if
- // false, second.
+ // A conditional expression, but for types.
+ // If true, first, if false, second.
+ /// Primary template.
template<bool _Cond, typename _Iftrue, typename _Iffalse>
struct conditional
{ typedef _Iftrue type; };
+ /// Partial specialization for false.
template<typename _Iftrue, typename _Iffalse>
struct conditional<false, _Iftrue, _Iffalse>
{ typedef _Iffalse type; };
struct __decay_selector<_Up, false, true>
{ typedef typename add_pointer<_Up>::type __type; };
+ /// decay
template<typename _Tp>
struct decay
{
typedef typename conditional<__b1, __smallest, __cond_type>::type __type;
};
- // Primary class template.
// Given an integral/enum type, return the corresponding unsigned
// integer type.
+ /// Primary template.
template<typename _Tp>
struct make_unsigned
{ typedef typename __make_unsigned_selector<_Tp>::__type type; };
typedef typename conditional<__b1, __smallest, __cond_type>::type __type;
};
- // Primary class template.
// Given an integral/enum type, return the corresponding signed
// integer type.
+ /// Primary template.
template<typename _Tp>
struct make_signed
{ typedef typename __make_signed_selector<_Tp>::__type type; };
// Special functions -*- C++ -*-
-// Copyright (C) 2006-2007
+// Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// [5.2] Special functions
- /**
- * @ingroup tr1_math_spec_func
- * @{
- */
-
- //
// Implementation-space details.
- //
namespace __detail
{
}
} // namespace std::tr1::__detail
-
- /* @} */ // group tr1_math_spec_func
-
}
}
// Special functions -*- C++ -*-
-// Copyright (C) 2006-2007
+// Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// [5.2] Special functions
- /**
- * @ingroup tr1_math_spec_func
- * @{
- */
-
- //
// Implementation-space details.
- //
namespace __detail
{
}
} // namespace std::tr1::__detail
-
- /* @} */ // group tr1_math_spec_func
-
}
}
// TR1 cmath -*- C++ -*-
-// Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+// Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
//
// 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
# undef _GLIBCXX_INCLUDE_AS_TR1
#endif
-/**
- * @defgroup tr1_math_spec_func Mathematical Special Functions
- * A collection of advanced mathematical special functions.
- * @{
- */
#include <bits/stl_algobase.h>
#include <limits>
-
#include <tr1/type_traits>
+
#include <tr1/gamma.tcc>
#include <tr1/bessel_function.tcc>
#include <tr1/beta_function.tcc>
#include <tr1/poly_laguerre.tcc>
#include <tr1/riemann_zeta.tcc>
-// namespace std::tr1
namespace std
{
namespace tr1
{
- // 5.2.1.1 Associated Laguerre polynomials.
+ /**
+ * @addtogroup tr1_math_spec_func Mathematical Special Functions
+ * A collection of advanced mathematical special functions.
+ * @{
+ */
+
inline float
assoc_laguerref(unsigned int __n, unsigned int __m, float __x)
{ return __detail::__assoc_laguerre<float>(__n, __m, __x); }
return __detail::__assoc_laguerre<long double>(__n, __m, __x);
}
+ /// 5.2.1.1 Associated Laguerre polynomials.
template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type
assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x)
return __detail::__assoc_laguerre<__type>(__n, __m, __x);
}
- // 5.2.1.2 Associated Legendre functions.
inline float
assoc_legendref(unsigned int __l, unsigned int __m, float __x)
{ return __detail::__assoc_legendre_p<float>(__l, __m, __x); }
assoc_legendrel(unsigned int __l, unsigned int __m, long double __x)
{ return __detail::__assoc_legendre_p<long double>(__l, __m, __x); }
+ /// 5.2.1.2 Associated Legendre functions.
template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type
assoc_legendre(unsigned int __l, unsigned int __m, _Tp __x)
return __detail::__assoc_legendre_p<__type>(__l, __m, __x);
}
- // 5.2.1.3 Beta functions.
inline float
betaf(float __x, float __y)
{ return __detail::__beta<float>(__x, __y); }
betal(long double __x, long double __y)
{ return __detail::__beta<long double>(__x, __y); }
+ /// 5.2.1.3 Beta functions.
template<typename _Tpx, typename _Tpy>
inline typename __gnu_cxx::__promote_2<_Tpx, _Tpy>::__type
beta(_Tpx __x, _Tpy __y)
return __detail::__beta<__type>(__x, __y);
}
- // 5.2.1.4 Complete elliptic integrals of the first kind.
inline float
comp_ellint_1f(float __k)
{ return __detail::__comp_ellint_1<float>(__k); }
comp_ellint_1l(long double __k)
{ return __detail::__comp_ellint_1<long double>(__k); }
+ /// 5.2.1.4 Complete elliptic integrals of the first kind.
template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type
comp_ellint_1(_Tp __k)
return __detail::__comp_ellint_1<__type>(__k);
}
- // 5.2.1.5 Complete elliptic integrals of the second kind.
inline float
comp_ellint_2f(float __k)
{ return __detail::__comp_ellint_2<float>(__k); }
comp_ellint_2l(long double __k)
{ return __detail::__comp_ellint_2<long double>(__k); }
+ /// 5.2.1.5 Complete elliptic integrals of the second kind.
template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type
comp_ellint_2(_Tp __k)
return __detail::__comp_ellint_2<__type>(__k);
}
- // 5.2.1.6 Complete elliptic integrals of the third kind.
inline float
comp_ellint_3f(float __k, float __nu)
{ return __detail::__comp_ellint_3<float>(__k, __nu); }
comp_ellint_3l(long double __k, long double __nu)
{ return __detail::__comp_ellint_3<long double>(__k, __nu); }
+ /// 5.2.1.6 Complete elliptic integrals of the third kind.
template<typename _Tp, typename _Tpn>
inline typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type
comp_ellint_3(_Tp __k, _Tpn __nu)
return __detail::__comp_ellint_3<__type>(__k, __nu);
}
- // 5.2.1.7 Confluent hypergeometric functions.
inline float
conf_hypergf(float __a, float __c, float __x)
{ return __detail::__conf_hyperg<float>(__a, __c, __x); }
conf_hypergl(long double __a, long double __c, long double __x)
{ return __detail::__conf_hyperg<long double>(__a, __c, __x); }
+ /// 5.2.1.7 Confluent hypergeometric functions.
template<typename _Tpa, typename _Tpc, typename _Tp>
inline typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type
conf_hyperg(_Tpa __a, _Tpc __c, _Tp __x)
return __detail::__conf_hyperg<__type>(__a, __c, __x);
}
- // 5.2.1.8 Regular modified cylindrical Bessel functions.
inline float
cyl_bessel_if(float __nu, float __x)
{ return __detail::__cyl_bessel_i<float>(__nu, __x); }
cyl_bessel_il(long double __nu, long double __x)
{ return __detail::__cyl_bessel_i<long double>(__nu, __x); }
+ /// 5.2.1.8 Regular modified cylindrical Bessel functions.
template<typename _Tpnu, typename _Tp>
inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
cyl_bessel_i(_Tpnu __nu, _Tp __x)
return __detail::__cyl_bessel_i<__type>(__nu, __x);
}
- // 5.2.1.9 Cylindrical Bessel functions (of the first kind).
inline float
cyl_bessel_jf(float __nu, float __x)
{ return __detail::__cyl_bessel_j<float>(__nu, __x); }
cyl_bessel_jl(long double __nu, long double __x)
{ return __detail::__cyl_bessel_j<long double>(__nu, __x); }
+ /// 5.2.1.9 Cylindrical Bessel functions (of the first kind).
template<typename _Tpnu, typename _Tp>
inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
cyl_bessel_j(_Tpnu __nu, _Tp __x)
return __detail::__cyl_bessel_j<__type>(__nu, __x);
}
- // 5.2.1.10 Irregular modified cylindrical Bessel functions.
inline float
cyl_bessel_kf(float __nu, float __x)
{ return __detail::__cyl_bessel_k<float>(__nu, __x); }
cyl_bessel_kl(long double __nu, long double __x)
{ return __detail::__cyl_bessel_k<long double>(__nu, __x); }
+ /// 5.2.1.10 Irregular modified cylindrical Bessel functions.
template<typename _Tpnu, typename _Tp>
inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
cyl_bessel_k(_Tpnu __nu, _Tp __x)
return __detail::__cyl_bessel_k<__type>(__nu, __x);
}
- // 5.2.1.11 Cylindrical Neumann functions.
inline float
cyl_neumannf(float __nu, float __x)
{ return __detail::__cyl_neumann_n<float>(__nu, __x); }
cyl_neumannl(long double __nu, long double __x)
{ return __detail::__cyl_neumann_n<long double>(__nu, __x); }
+ /// 5.2.1.11 Cylindrical Neumann functions.
template<typename _Tpnu, typename _Tp>
inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
cyl_neumann(_Tpnu __nu, _Tp __x)
return __detail::__cyl_neumann_n<__type>(__nu, __x);
}
- // 5.2.1.12 Incomplete elliptic integrals of the first kind.
inline float
ellint_1f(float __k, float __phi)
{ return __detail::__ellint_1<float>(__k, __phi); }
ellint_1l(long double __k, long double __phi)
{ return __detail::__ellint_1<long double>(__k, __phi); }
+ /// 5.2.1.12 Incomplete elliptic integrals of the first kind.
template<typename _Tp, typename _Tpp>
inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type
ellint_1(_Tp __k, _Tpp __phi)
return __detail::__ellint_1<__type>(__k, __phi);
}
- // 5.2.1.13 Incomplete elliptic integrals of the second kind.
inline float
ellint_2f(float __k, float __phi)
{ return __detail::__ellint_2<float>(__k, __phi); }
ellint_2l(long double __k, long double __phi)
{ return __detail::__ellint_2<long double>(__k, __phi); }
+ /// 5.2.1.13 Incomplete elliptic integrals of the second kind.
template<typename _Tp, typename _Tpp>
inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type
ellint_2(_Tp __k, _Tpp __phi)
return __detail::__ellint_2<__type>(__k, __phi);
}
- // 5.2.1.14 Incomplete elliptic integrals of the third kind.
inline float
ellint_3f(float __k, float __nu, float __phi)
{ return __detail::__ellint_3<float>(__k, __nu, __phi); }
ellint_3l(long double __k, long double __nu, long double __phi)
{ return __detail::__ellint_3<long double>(__k, __nu, __phi); }
+ /// 5.2.1.14 Incomplete elliptic integrals of the third kind.
template<typename _Tp, typename _Tpn, typename _Tpp>
inline typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type
ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi)
return __detail::__ellint_3<__type>(__k, __nu, __phi);
}
- // 5.2.1.15 Exponential integrals.
inline float
expintf(float __x)
{ return __detail::__expint<float>(__x); }
expintl(long double __x)
{ return __detail::__expint<long double>(__x); }
+ /// 5.2.1.15 Exponential integrals.
template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type
expint(_Tp __x)
return __detail::__expint<__type>(__x);
}
- // 5.2.1.16 Hermite polynomials.
inline float
hermitef(unsigned int __n, float __x)
{ return __detail::__poly_hermite<float>(__n, __x); }
hermitel(unsigned int __n, long double __x)
{ return __detail::__poly_hermite<long double>(__n, __x); }
+ /// 5.2.1.16 Hermite polynomials.
template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type
hermite(unsigned int __n, _Tp __x)
return __detail::__poly_hermite<__type>(__n, __x);
}
- // 5.2.1.17 Hypergeometric functions.
inline float
hypergf(float __a, float __b, float __c, float __x)
{ return __detail::__hyperg<float>(__a, __b, __c, __x); }
hypergl(long double __a, long double __b, long double __c, long double __x)
{ return __detail::__hyperg<long double>(__a, __b, __c, __x); }
+ /// 5.2.1.17 Hypergeometric functions.
template<typename _Tpa, typename _Tpb, typename _Tpc, typename _Tp>
inline typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp>::__type
hyperg(_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x)
return __detail::__hyperg<__type>(__a, __b, __c, __x);
}
- // 5.2.1.18 Laguerre polynomials.
inline float
laguerref(unsigned int __n, float __x)
{ return __detail::__laguerre<float>(__n, __x); }
laguerrel(unsigned int __n, long double __x)
{ return __detail::__laguerre<long double>(__n, __x); }
+ /// 5.2.1.18 Laguerre polynomials.
template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type
laguerre(unsigned int __n, _Tp __x)
return __detail::__laguerre<__type>(__n, __x);
}
- // 5.2.1.19 Legendre polynomials.
inline float
legendref(unsigned int __n, float __x)
{ return __detail::__poly_legendre_p<float>(__n, __x); }
legendrel(unsigned int __n, long double __x)
{ return __detail::__poly_legendre_p<long double>(__n, __x); }
+ /// 5.2.1.19 Legendre polynomials.
template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type
legendre(unsigned int __n, _Tp __x)
return __detail::__poly_legendre_p<__type>(__n, __x);
}
- // 5.2.1.20 Riemann zeta function.
inline float
riemann_zetaf(float __x)
{ return __detail::__riemann_zeta<float>(__x); }
riemann_zetal(long double __x)
{ return __detail::__riemann_zeta<long double>(__x); }
+ /// 5.2.1.20 Riemann zeta function.
template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type
riemann_zeta(_Tp __x)
return __detail::__riemann_zeta<__type>(__x);
}
- // 5.2.1.21 Spherical Bessel functions.
inline float
sph_besself(unsigned int __n, float __x)
{ return __detail::__sph_bessel<float>(__n, __x); }
sph_bessell(unsigned int __n, long double __x)
{ return __detail::__sph_bessel<long double>(__n, __x); }
+ /// 5.2.1.21 Spherical Bessel functions.
template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type
sph_bessel(unsigned int __n, _Tp __x)
return __detail::__sph_bessel<__type>(__n, __x);
}
- // 5.2.1.22 Spherical associated Legendre functions.
inline float
sph_legendref(unsigned int __l, unsigned int __m, float __theta)
{ return __detail::__sph_legendre<float>(__l, __m, __theta); }
sph_legendrel(unsigned int __l, unsigned int __m, long double __theta)
{ return __detail::__sph_legendre<long double>(__l, __m, __theta); }
+ /// 5.2.1.22 Spherical associated Legendre functions.
template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type
sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta)
return __detail::__sph_legendre<__type>(__l, __m, __theta);
}
- // 5.2.1.23 Spherical Neumann functions.
inline float
sph_neumannf(unsigned int __n, float __x)
{ return __detail::__sph_neumann<float>(__n, __x); }
sph_neumannl(unsigned int __n, long double __x)
{ return __detail::__sph_neumann<long double>(__n, __x); }
+ /// 5.2.1.23 Spherical Neumann functions.
template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type
sph_neumann(unsigned int __n, _Tp __x)
return __detail::__sph_neumann<__type>(__n, __x);
}
- /* @} */ // group tr1_math_spec_func
+ /* @} */ // tr1_math_spec_func
}
}
// Special functions -*- C++ -*-
-// Copyright (C) 2006-2007
+// Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// [5.2] Special functions
- /**
- * @ingroup tr1_math_spec_func
- * @{
- */
-
- //
// Implementation-space details.
- //
namespace __detail
{
}
} // namespace std::tr1::__detail
-
- /* @} */ // group tr1_math_spec_func
-
}
}
// Special functions -*- C++ -*-
-// Copyright (C) 2006-2007
+// Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// [5.2] Special functions
- /**
- * @ingroup tr1_math_spec_func
- * @{
- */
-
- //
// Implementation-space details.
- //
namespace __detail
{
}
} // namespace std::tr1::__detail
-
- /* @} */ // group tr1_math_spec_func
-
}
}
// Special functions -*- C++ -*-
-// Copyright (C) 2006-2007
+// Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
{
namespace tr1
{
-
- /**
- * @ingroup tr1_math_spec_func
- * @{
- */
-
- //
// Implementation-space details.
- //
namespace __detail
{
}
} // namespace std::tr1::__detail
-
- /* @} */ // group tr1_math_spec_func
-
}
}
// Special functions -*- C++ -*-
-// Copyright (C) 2006-2007
+// Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// [5.2] Special functions
- /**
- * @ingroup tr1_math_spec_func
- * @{
- */
-
- //
// Implementation-space details.
- //
namespace __detail
{
}
} // namespace std::tr1::__detail
-
- /* @} */ // group tr1_math_spec_func
-
}
}
// Special functions -*- C++ -*-
-// Copyright (C) 2006-2007
+// Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// [5.2] Special functions
- /**
- * @ingroup tr1_math_spec_func
- * @{
- */
-
- //
// Implementation-space details.
- //
namespace __detail
{
_Tp __p_mm = _Tp(1);
if (__m > 0)
{
- // Two square roots seem more accurate more of the time than just one.
+ // Two square roots seem more accurate more of the time
+ // than just one.
_Tp __root = std::sqrt(_Tp(1) - __x) * std::sqrt(_Tp(1) + __x);
_Tp __fact = _Tp(1);
for (unsigned int __i = 1; __i <= __m; ++__i)
}
} // namespace std::tr1::__detail
-
- /* @} */ // group tr1_math_spec_func
-
}
}
// Special functions -*- C++ -*-
-// Copyright (C) 2006-2007
+// Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// [5.2] Special functions
- /**
- * @ingroup tr1_math_spec_func
- * @{
- */
-
- //
// Implementation-space details.
- //
namespace __detail
{
}
} // namespace std::tr1::__detail
-
- /* @} */ // group tr1_math_spec_func
-
}
}
// Special functions -*- C++ -*-
-// Copyright (C) 2006-2007
+// Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// [5.2] Special functions
- /**
- * @ingroup tr1_math_spec_func
- * @{
- */
-
- //
// Implementation-space details.
- //
namespace __detail
{
}
} // namespace std::tr1::__detail
-
- /* @} */ // group tr1_math_spec_func
-
}
}
// Special functions -*- C++ -*-
-// Copyright (C) 2006-2007
+// Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// [5.2] Special functions
- /**
- * @ingroup tr1_math_spec_func
- * @{
- */
-
- //
// Implementation-space details.
- //
namespace __detail
{
}
} // namespace std::tr1::__detail
-
- /* @} */ // group tr1_math_spec_func
-
}
}
// Special functions -*- C++ -*-
-// Copyright (C) 2006-2007
+// Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// [5.2] Special functions
- /**
- * @ingroup tr1_math_spec_func
- * @{
- */
-
- //
// Implementation-space details.
- //
namespace __detail
{
}
} // namespace std::tr1::__detail
-
- /* @} */ // group tr1_math_spec_func
-
}
}
#ifndef _GLIBCXX_TR1_SPECIAL_FUNCTION_UTIL_H
#define _GLIBCXX_TR1_SPECIAL_FUNCTION_UTIL_H 1
-// namespace std::tr1
namespace std
{
namespace tr1
namespace __detail
{
- ///
- /// @brief A class to encapsulate type dependent floating point
- /// constants. Not everything will be able to be expressed
- /// as type logic.
- ///
- template <typename _Tp>
+ /// A class to encapsulate type dependent floating point
+ /// constants. Not everything will be able to be expressed as
+ /// type logic.
+ template<typename _Tp>
struct __floating_point_constant
{
static const _Tp __value;
};
- ///
- /// @brief A structure for numeric constants.
- ///
+ /// A structure for numeric constants.
template<typename _Tp>
struct __numeric_constants
{
};
- ///
- /// @brief This is a wrapper for the isnan function.
- /// Otherwise, for NaN, all comparisons result in false.
- /// If/when we build a std::isnan out of intrinsics, this
- /// will disappear completely in favor of std::isnan.
- ///
#if _GLIBCXX_USE_C99_MATH && !_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC
- template <typename _Tp>
+ /// This is a wrapper for the isnan function. Otherwise, for NaN,
+ /// all comparisons result in false. If/when we build a std::isnan
+ /// out of intrinsics, this will disappear completely in favor of
+ /// std::isnan.
+ template<typename _Tp>
inline bool __isnan(const _Tp __x)
{
return std::isnan(__x);
#else
- template <typename _Tp>
+ template<typename _Tp>
inline bool __isnan(const _Tp __x)
{
return __builtin_isnan(__x);
}
- template <>
+ template<>
inline bool __isnan<float>(const float __x)
{
return __builtin_isnanf(__x);
}
- template <>
+ template<>
inline bool __isnan<long double>(const long double __x)
{
return __builtin_isnanl(__x);
template<typename _Tp>
struct tuple_size;
- /// @brief class tuple_size
+ /// class tuple_size
template<typename... _Elements>
struct tuple_size<tuple<_Elements...> >
{
template<typename _From, typename _To,
bool = (is_void<_From>::value || is_void<_To>::value
|| is_function<_To>::value || is_array<_To>::value
- // This special case is here only to avoid warnings.
+ // This special case is here only to avoid warnings.
|| (is_floating_point<typename
remove_reference<_From>::type>::value
&& __is_int_or_cref<_To>::__value))>
__is_convertible_helper<_From, _To>::__value>
{ };
- /// @brief reference modifications [4.7.2].
+ // reference modifications [4.7.2].
template<typename _Tp>
struct remove_reference
{ typedef _Tp type; };
: public __add_reference_helper<_Tp>
{ };
- /// @brief other transformations [4.8].
+ // other transformations [4.8].
template<std::size_t _Len, std::size_t _Align>
struct aligned_storage
{
{
_GLIBCXX_BEGIN_NAMESPACE_TR1
- /// @brief struct array.
+ /// array.
/// NB: Requires complete type _Tp.
template<typename _Tp, std::size_t _Nm>
struct array
{ std::swap_ranges(__one.begin(), __one.end(), __two.begin()); }
// Tuple interface to class template array [6.2.2.5].
- template<typename _Tp> class tuple_size;
- template<int _Int, typename _Tp> class tuple_element;
+
+ /// tuple_size
+ template<typename _Tp>
+ class tuple_size;
+
+ /// tuple_element
+ template<int _Int, typename _Tp>
+ class tuple_element;
template<typename _Tp, std::size_t _Nm>
struct tuple_size<array<_Tp, _Nm> >
#endif
/**
- * @class shared_ptr <tr1/memory>
+ * @class __shared_ptr
*
* A smart pointer with reference-counted copy semantics.
* The object pointed to is deleted when the last shared_ptr pointing to
}
//
- // Requirements: _Deleter's copy constructor and destructor must not throw
+ // Requirements: _Deleter's copy constructor and destructor must
+ // not throw
//
// __shared_ptr will release __p by calling __d(__p)
//
#ifdef _GLIBCXX_INCLUDE_AS_CXX0X
//
- // Requirements: _Deleter's copy constructor and destructor must not throw
- // _Alloc's copy constructor and destructor must not throw.
+ // Requirements: _Deleter's copy constructor and destructor must
+ // not throw _Alloc's copy constructor and destructor must not
+ // throw.
//
// __shared_ptr will release __p by calling __d(__p)
//
};
- // The actual TR1 shared_ptr, with forwarding constructors and
+ /// shared_ptr
+ // The actual shared_ptr, with forwarding constructors and
// assignment operators.
template<typename _Tp>
class shared_ptr
}
- // The actual TR1 weak_ptr, with forwarding constructors and
+ /// weak_ptr
+ // The actual weak_ptr, with forwarding constructors and
// assignment operators.
template<typename _Tp>
class weak_ptr
}
};
-
+ /// enable_shared_from_this
template<typename _Tp>
class enable_shared_from_this
{
#if _GLIBCXX_USE_C99_MATH
#if !_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC
- /// @brief Function template definitions [8.16.3].
- //
+ /// Function template definitions [8.16.3].
using std::signbit;
using std::fpclassify;
#if _GLIBCXX_USE_C99_MATH_TR1
- /// @brief Additional overloads [8.16.4].
- //
+ /// Additional overloads [8.16.4].
using std::acos;
inline float
template<typename _Tp> std::complex<_Tp> fabs(const std::complex<_Tp>&);
#endif
- /// @brief acos(__z) [8.1.2].
+ /// acos(__z) [8.1.2].
// Effects: Behaves the same as C99 function cacos, defined
// in subclause 7.3.5.1.
template<typename _Tp>
{ return __complex_acos(__z); }
#endif
- /// @brief asin(__z) [8.1.3].
+ /// asin(__z) [8.1.3].
// Effects: Behaves the same as C99 function casin, defined
// in subclause 7.3.5.2.
template<typename _Tp>
{ return __complex_asin(__z); }
#endif
- /// @brief atan(__z) [8.1.4].
+ /// atan(__z) [8.1.4].
// Effects: Behaves the same as C99 function catan, defined
// in subclause 7.3.5.3.
template<typename _Tp>
{ return __complex_atan(__z); }
#endif
- /// @brief acosh(__z) [8.1.5].
+ /// acosh(__z) [8.1.5].
// Effects: Behaves the same as C99 function cacosh, defined
// in subclause 7.3.6.1.
template<typename _Tp>
{ return __complex_acosh(__z); }
#endif
- /// @brief asinh(__z) [8.1.6].
+ /// asinh(__z) [8.1.6].
// Effects: Behaves the same as C99 function casin, defined
// in subclause 7.3.6.2.
template<typename _Tp>
{ return __complex_asinh(__z); }
#endif
- /// @brief atanh(__z) [8.1.7].
+ /// atanh(__z) [8.1.7].
// Effects: Behaves the same as C99 function catanh, defined
// in subclause 7.3.6.3.
template<typename _Tp>
{ return __complex_atanh(__z); }
#endif
- /// @brief fabs(__z) [8.1.8].
+ /// fabs(__z) [8.1.8].
// Effects: Behaves the same as C99 function cabs, defined
// in subclause 7.3.8.1.
template<typename _Tp>
|| (defined(_GLIBCXX_INCLUDE_AS_TR1) \
&& !defined(__GXX_EXPERIMENTAL_CXX0X__)))
- /// @brief Additional overloads [8.1.9].
- //
+ /// Additional overloads [8.1.9].
template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type
arg(_Tp __x)
: binary_function<const volatile _T1*, _T2, _Res>
{ };
+ /// reference_wrapper
template<typename _Tp>
class reference_wrapper
: public _Reference_wrapper_base<typename remove_cv<_Tp>::type>
template<typename _Result, typename _Signature>
const bool is_bind_expression<_Bind_result<_Result, _Signature> >::value;
+ /// bind
template<typename _Functor, typename... _ArgTypes>
inline
_Bind<typename _Maybe_wrap_member_pointer<_Functor>::type(_ArgTypes...)>
}
};
+ /// class function
template<typename _Res, typename... _ArgTypes>
class function<_Res(_ArgTypes...)>
: public _Maybe_unary_or_binary_function<_Res, _ArgTypes...>,
// TR1 functional -*- C++ -*-
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2008 Free Software Foundation, Inc.
//
// 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
{
_GLIBCXX_BEGIN_NAMESPACE_TR1
- // Class template hash.
+ /// Class template hash.
// Declaration of default hash functor std::tr1::hash. The types for
// which std::tr1::hash<T> is well-defined is in clause 6.3.3. of the PDTR.
template<typename _Tp>
operator()(_Tp __val) const;
};
- // Partial specializations for pointer types.
+ /// Partial specializations for pointer types.
template<typename _Tp>
struct hash<_Tp*> : public std::unary_function<_Tp*, size_t>
{
{ return reinterpret_cast<size_t>(__p); }
};
- // Explicit specializations for integer types.
+ /// Explicit specializations for integer types.
#define _TR1_hashtable_define_trivial_hash(_Tp) \
template<> \
inline size_t \
// Fowler / Noll / Vo (FNV) Hash (type FNV-1a)
// (Used by the next specializations of std::tr1::hash.)
- // Dummy generic implementation (for sizeof(size_t) != 4, 8).
+ /// Dummy generic implementation (for sizeof(size_t) != 4, 8).
template<size_t = sizeof(size_t)>
struct _Fnv_hash
{
}
};
- // Explicit specializations for floating point types.
+ /// Explicit specializations for float.
template<>
inline size_t
hash<float>::operator()(float __val) const
return __result;
};
+ /// Explicit specializations for double.
template<>
inline size_t
hash<double>::operator()(double __val) const
return __result;
};
+ /// Explicit specializations for long double.
template<>
size_t
hash<long double>::operator()(long double __val) const;
- // Explicit specialization of member operator for types that are not builtin.
+ /// Explicit specialization of member operator for non-builtin types.
template<>
size_t
hash<string>::operator()(string) const;
} // namespace __detail
/**
- * Produces random numbers on a given distribution function using a non-uniform
- * random number generation engine.
+ * Produces random numbers on a given distribution function using a
+ * non-uniform random number generation engine.
*
* @todo the engine_value_type needs to be studied more carefully.
*/
static const match_flag_type format_first_only = 1 << _S_first_only;
- // [7.5.3] implementation-defined error type
+ /// [7.5.3] implementation-defined error type
enum error_type
{
_S_error_collate,
// [7.8] Class regex_error
/**
- * Defines the type of objects thrown as exceptions to report errors from the
+ * Defines the exception objects thrown report errors from the
* regular expression library.
*/
class regex_error
_DEFINE_SPEC_##_Order##_HELPER(_Trait<_Type volatile>, _Value) \
_DEFINE_SPEC_##_Order##_HELPER(_Trait<_Type const volatile>, _Value)
- /// @brief helper classes [4.3].
+ /// helper classes [4.3].
template<typename _Tp, _Tp __v>
struct integral_constant
{
typedef _Tp value_type;
typedef integral_constant<_Tp, __v> type;
};
+
+ /// typedef for true_type
typedef integral_constant<bool, true> true_type;
+
+ /// typedef for true_type
typedef integral_constant<bool, false> false_type;
template<typename _Tp, _Tp __v>
const _Tp integral_constant<_Tp, __v>::value;
- /// @brief primary type categories [4.5.1].
+ /// primary type categories [4.5.1].
template<typename>
struct is_void
: public false_type { };
_DEFINE_SPEC(0, is_void, void, true)
+ /// is_integral
template<typename>
struct is_integral
: public false_type { };
_DEFINE_SPEC(0, is_integral, long long, true)
_DEFINE_SPEC(0, is_integral, unsigned long long, true)
+ /// is_floating_point
template<typename>
struct is_floating_point
: public false_type { };
_DEFINE_SPEC(0, is_floating_point, double, true)
_DEFINE_SPEC(0, is_floating_point, long double, true)
+ /// is_array
template<typename>
struct is_array
: public false_type { };
struct is_array<_Tp[]>
: public true_type { };
+ /// is_pointer
template<typename>
struct is_pointer
: public false_type { };
_DEFINE_SPEC(1, is_pointer, _Tp*, true)
+ /// is_reference
template<typename _Tp>
struct is_reference;
+ /// is_function
template<typename _Tp>
struct is_function;
+ /// is_member_object_pointer
template<typename>
struct is_member_object_pointer
: public false_type { };
_DEFINE_SPEC(2, is_member_object_pointer, _Tp _Cp::*,
!is_function<_Tp>::value)
+ /// is_member_function_pointer
template<typename>
struct is_member_function_pointer
: public false_type { };
_DEFINE_SPEC(2, is_member_function_pointer, _Tp _Cp::*,
is_function<_Tp>::value)
+ /// is_enum
template<typename _Tp>
struct is_enum
: public integral_constant<bool, __is_enum(_Tp)>
{ };
+ /// is_union
template<typename _Tp>
struct is_union
: public integral_constant<bool, __is_union(_Tp)>
{ };
+ /// is_class
template<typename _Tp>
struct is_class
: public integral_constant<bool, __is_class(_Tp)>
static const bool __value = sizeof(__test<_Tp>(0)) == 1;
};
+ /// is_abstract
template<typename _Tp>
struct is_abstract;
+ /// is_function
template<typename _Tp>
struct is_function
: public integral_constant<bool, !(__in_array<_Tp>::__value
|| is_void<_Tp>::value)>
{ };
- /// @brief composite type traits [4.5.2].
+ /// composite type traits [4.5.2].
template<typename _Tp>
struct is_arithmetic
: public integral_constant<bool, (is_integral<_Tp>::value
|| is_floating_point<_Tp>::value)>
{ };
+ /// is_fundamental
template<typename _Tp>
struct is_fundamental
: public integral_constant<bool, (is_arithmetic<_Tp>::value
|| is_void<_Tp>::value)>
{ };
+ /// is_object
template<typename _Tp>
struct is_object
: public integral_constant<bool, !(is_function<_Tp>::value
|| is_void<_Tp>::value)>
{ };
+ /// is_member_pointer
template<typename _Tp>
struct is_member_pointer;
+ /// is_scalal
template<typename _Tp>
struct is_scalar
: public integral_constant<bool, (is_arithmetic<_Tp>::value
|| is_member_pointer<_Tp>::value)>
{ };
+ /// is_compound
template<typename _Tp>
struct is_compound
: public integral_constant<bool, !is_fundamental<_Tp>::value> { };
+ /// is_member_pointer
template<typename _Tp>
struct is_member_pointer
: public integral_constant<bool,
|| is_member_function_pointer<_Tp>::value)>
{ };
- /// @brief type properties [4.5.3].
+ /// type properties [4.5.3].
template<typename>
struct is_const
: public false_type { };
+ /// is_const
template<typename _Tp>
struct is_const<_Tp const>
: public true_type { };
+ /// is_volatile
template<typename>
struct is_volatile
: public false_type { };
struct is_volatile<_Tp volatile>
: public true_type { };
+ /// is_empty
template<typename _Tp>
struct is_empty
: public integral_constant<bool, __is_empty(_Tp)>
{ };
+ /// is_polymorphic
template<typename _Tp>
struct is_polymorphic
: public integral_constant<bool, __is_polymorphic(_Tp)>
{ };
+ /// is_abstract
template<typename _Tp>
struct is_abstract
: public integral_constant<bool, __is_abstract(_Tp)>
{ };
+ /// has_virtual_destructor
template<typename _Tp>
struct has_virtual_destructor
: public integral_constant<bool, __has_virtual_destructor(_Tp)>
{ };
+ /// alignment_of
template<typename _Tp>
struct alignment_of
: public integral_constant<std::size_t, __alignof__(_Tp)> { };
+ /// rank
template<typename>
struct rank
: public integral_constant<std::size_t, 0> { };
struct rank<_Tp[]>
: public integral_constant<std::size_t, 1 + rank<_Tp>::value> { };
+ /// extent
template<typename, unsigned _Uint = 0>
struct extent
: public integral_constant<std::size_t, 0> { };
_Uint - 1>::value>
{ };
- /// @brief relationships between types [4.6].
+ /// relationships between types [4.6].
template<typename, typename>
struct is_same
: public false_type { };
struct is_same<_Tp, _Tp>
: public true_type { };
- /// @brief const-volatile modifications [4.7.1].
+ /// const-volatile modifications [4.7.1].
template<typename _Tp>
struct remove_const
{ typedef _Tp type; };
struct remove_const<_Tp const>
{ typedef _Tp type; };
+ /// remove_volatile
template<typename _Tp>
struct remove_volatile
{ typedef _Tp type; };
struct remove_volatile<_Tp volatile>
{ typedef _Tp type; };
+ /// remove_cv
template<typename _Tp>
struct remove_cv
{
remove_const<typename remove_volatile<_Tp>::type>::type type;
};
+ /// add_const
template<typename _Tp>
struct add_const
{ typedef _Tp const type; };
+ /// add_volatile
template<typename _Tp>
struct add_volatile
{ typedef _Tp volatile type; };
+ /// add_cv
template<typename _Tp>
struct add_cv
{
add_const<typename add_volatile<_Tp>::type>::type type;
};
- /// @brief array modifications [4.7.3].
+ /// array modifications [4.7.3].
template<typename _Tp>
struct remove_extent
{ typedef _Tp type; };
struct remove_extent<_Tp[]>
{ typedef _Tp type; };
+ /// remove_all_extents
template<typename _Tp>
struct remove_all_extents
{ typedef _Tp type; };
struct remove_all_extents<_Tp[]>
{ typedef typename remove_all_extents<_Tp>::type type; };
- /// @brief pointer modifications [4.7.4].
+ /// pointer modifications [4.7.4].
#undef _DEFINE_SPEC_BODY
#define _DEFINE_SPEC_BODY(_Value) \
{ typedef _Tp type; };
+ /// remove_pointer
template<typename _Tp>
struct remove_pointer
{ typedef _Tp type; };
_DEFINE_SPEC(1, remove_pointer, _Tp*, false)
+ /// remove_reference
template<typename _Tp>
struct remove_reference;
+ /// add_pointer
template<typename _Tp>
struct add_pointer
{ typedef typename remove_reference<_Tp>::type* type; };
{ __x.swap(__y); }
+ /// class unordered_map
template<class _Key, class _Tp,
class _Hash = hash<_Key>,
class _Pred = std::equal_to<_Key>,
#endif
};
+ /// class unordered_multimap
template<class _Key, class _Tp,
class _Hash = hash<_Key>,
class _Pred = std::equal_to<_Key>,
template<class _Value, class _Hash, class _Pred, class _Alloc,
bool __cache_hash_code>
inline void
- swap (__unordered_set<_Value, _Hash, _Pred,
- _Alloc, __cache_hash_code>& __x,
- __unordered_set<_Value, _Hash, _Pred,
- _Alloc, __cache_hash_code>& __y)
+ swap(__unordered_set<_Value, _Hash, _Pred, _Alloc, __cache_hash_code>& __x,
+ __unordered_set<_Value, _Hash, _Pred, _Alloc, __cache_hash_code>& __y)
{ __x.swap(__y); }
template<class _Value, class _Hash, class _Pred, class _Alloc,
{ __x.swap(__y); }
+ /// class unordered_set
template<class _Value,
class _Hash = hash<_Value>,
class _Pred = std::equal_to<_Value>,
#endif
};
+ /// class unordered_multiset
template<class _Value,
class _Hash = hash<_Value>,
class _Pred = std::equal_to<_Value>,
# We can check now that the version of doxygen is >= this variable.
-DOXYVER=1.5.4
+DOXYVER=1.5.1
find_doxygen() {
local -r v_required=`echo $DOXYVER | \
-e "s=@srcdir@=${srcdir}=g" \
-e "s=@builddir@=${builddir}=g" \
-e "s=@host_alias@=${host_alias}=g" \
- -e "s=@html_output_dir@=html=" \
-e "s=@enabled_sections@=${enabled_sections}=" \
-e "s=@do_html@=${do_html}=" \
-e "s=@do_man@=${do_man}=" \
return 0;
}
-// { dg-error "is private" "" { target *-*-* } 75 }
+// { dg-error "is private" "" { target *-*-* } 76 }
// { dg-error "within this context" "" { target *-*-* } 29 }
// { dg-error "first required here" "" { target *-*-* } 48 }
// { dg-excess-errors "copy constructor" }
// { dg-error "instantiated from here" "" { target *-*-* } 41 }
// { dg-error "instantiated from here" "" { target *-*-* } 43 }
-// { dg-error "invalid use of incomplete type" "" { target *-*-* } 511 }
-// { dg-error "declaration of" "" { target *-*-* } 477 }
+// { dg-error "invalid use of incomplete type" "" { target *-*-* } 549 }
+// { dg-error "declaration of" "" { target *-*-* } 515 }
// { dg-excess-errors "At global scope" }
// { dg-excess-errors "In instantiation of" }
// { dg-error "instantiated from here" "" { target *-*-* } 41 }
// { dg-error "instantiated from here" "" { target *-*-* } 43 }
-// { dg-error "invalid use of incomplete type" "" { target *-*-* } 436 }
-// { dg-error "declaration of" "" { target *-*-* } 402 }
+// { dg-error "invalid use of incomplete type" "" { target *-*-* } 474 }
+// { dg-error "declaration of" "" { target *-*-* } 440 }
// { dg-excess-errors "At global scope" }
// { dg-excess-errors "In instantiation of" }