Commit 939759fc by Benjamin Kosnik Committed by Benjamin Kosnik

run_doxygen: Remove html_output_dir.

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.

From-SVN: r133544
parent a0a5f30f
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> 2008-03-23 Paolo Carlini <pcarlini@suse.de>
* doc/xml/faq.xml: Fix various links. * doc/xml/faq.xml: Fix various links.
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
// invalidate any other reasons why the executable file might be covered by // invalidate any other reasons why the executable file might be covered by
// the GNU General Public License. // the GNU General Public License.
/** @file compatibility.h /** @file bits/compatibility.h
* This is an internal header file, included by other library sources. * This is an internal header file, included by other library sources.
* You should not attempt to use it directly. * You should not attempt to use it directly.
*/ */
......
.\" t .\" 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" .TH C++Intro 3 "20 May 2004" "GNU libstdc++" "Standard C++ Library"
.SH NAME .SH NAME
C++Intro \- Introduction to the GNU libstdc++ man pages 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. See license.html for license.
This just provides documentation for stuff that doesn't need to be in the This just provides documentation for stuff that doesn't need to be in the
...@@ -17,36 +17,34 @@ ...@@ -17,36 +17,34 @@
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
/** @namespace std /** @namespace std
* @brief Everything defined by the ISO C++ Standard is within * @brief ISO C++ entities toplevel namespace is std.
* namespace <a class="el" href="namespacestd.html">std</a>.
*/ */
/** @namespace std::__detail /** @namespace std::__detail
* @brief Implementation details not part of the namespace <a class="el" * @brief Implementation details not part of the namespace std interface.
* href="namespacestd.html">std</a> interface.
*/ */
/** @namespace std::tr1 /** @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 /** @namespace std::tr1::__detail
* @brief Implementation details not part of the namespace std::tr1 interface. * @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 /** @namespace __gnu_cxx
* @brief GNU extensions for public use. * @brief GNU extensions for public use.
*/ */
/** @namespace __gnu_cxx::__detail /** @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. * interface.
*/ */
/** @namespace __gnu_cxx::typelist
* @brief GNU typelist extensions for public compile-time use.
*/
/** @namespace __gnu_internal /** @namespace __gnu_internal
* @brief GNU implemenation details, not for public use or * @brief GNU implemenation details, not for public use or
* export. Used only when anonymous namespaces cannot be substituted. * 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 /** @addtogroup SGIextensions STL extensions from SGI
Because libstdc++ based its implementation of the STL subsections of Because libstdc++ based its implementation of the STL subsections of
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
<html> <html>
<head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libstdc++ Source: Main Index</title> <title>libstdc++ Source: Main Index</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head> </head>
<body bgcolor="#ffffff"> <body bgcolor="#ffffff">
...@@ -39,14 +38,25 @@ ...@@ -39,14 +38,25 @@
<p>Here are entry points to all the pages generated by Doxygen: <p>Here are entry points to all the pages generated by Doxygen:
<ul> <ul>
<li><a href="modules.html">Modules</a> <li><a href="modules.html">Modules</a></li>
<li><a href="namespaces.html">Namespace List</a>
<li><a href="hierarchy.html">Class List</a> <li>Namespaces
<li><a href="annotated.html">Class Annotated List</a> <ul>
<li><a href="classes.html">Class Alphabetical Index</a> <li><a href="namespaces.html">List</a></li>
<li><a href="globals_func.html">Function Alphabetical List</a> <li><a href="namespacemembers.html">Members</a></li>
<li><a href="files.html">Source File List</a> </ul>
<li><a href="todo.html">TODO List</a> (This is incomplete... how ironic.) </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> </ul>
</p> </p>
......
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 }
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
<html> <html>
<head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Tables</title> <title>Tables</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head> </head>
<body bgcolor="#ffffff"> <body bgcolor="#ffffff">
......
# Doxyfile 1.5.4 # Doxyfile 1.5.1
# This file describes the settings to be used by the documentation system # This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project # doxygen (www.doxygen.org) for a project
...@@ -14,15 +14,6 @@ ...@@ -14,15 +14,6 @@
# Project related configuration options # 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 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded
# by quotes) that should identify the project. # by quotes) that should identify the project.
...@@ -62,6 +53,16 @@ CREATE_SUBDIRS = NO ...@@ -62,6 +53,16 @@ CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English 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 # 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 # include brief member descriptions after the members that are listed in
# the file and class documentation (similar to JavaDoc). # the file and class documentation (similar to JavaDoc).
...@@ -69,11 +70,10 @@ OUTPUT_LANGUAGE = English ...@@ -69,11 +70,10 @@ OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = NO BRIEF_MEMBER_DESC = NO
# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
# prepend the brief description of a member or function before the # the brief description of a member or function before the detailed description.
# detailed description. Note: if both HIDE_UNDOC_MEMBERS and # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
# BRIEF_MEMBER_DESC are set to NO, the brief descriptions will be # brief descriptions will be completely suppressed.
# completely suppressed.
REPEAT_BRIEF = YES REPEAT_BRIEF = YES
...@@ -135,19 +135,11 @@ SHORT_NAMES = YES ...@@ -135,19 +135,11 @@ SHORT_NAMES = YES
# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
# will interpret the first line (until the first dot) of a JavaDoc-style # will interpret the first line (until the first dot) of a JavaDoc-style
# comment as the brief description. If set to NO, the JavaDoc # comment as the brief description. If set to NO, the JavaDoc
# comments will behave just like regular Qt-style comments # comments will behave just like the Qt-style comments (thus requiring an
# (thus requiring an explicit @brief command for a brief description.) # explicit @brief command for a brief description.
JAVADOC_AUTOBRIEF = NO 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 # 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 /// # 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. # comments) as a brief description. This used to be the default behaviour.
...@@ -213,18 +205,6 @@ OPTIMIZE_OUTPUT_JAVA = NO ...@@ -213,18 +205,6 @@ OPTIMIZE_OUTPUT_JAVA = NO
BUILTIN_STL_SUPPORT = NO 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 # 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 # 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 # member in the group (if any) for the other members of the group. By default
...@@ -240,16 +220,6 @@ DISTRIBUTE_GROUP_DOC = YES ...@@ -240,16 +220,6 @@ DISTRIBUTE_GROUP_DOC = YES
SUBGROUPING = YES 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 # Build related configuration options
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
...@@ -284,14 +254,6 @@ EXTRACT_LOCAL_CLASSES = YES ...@@ -284,14 +254,6 @@ EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES 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 # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
# undocumented members of documented classes, files or namespaces. # undocumented members of documented classes, files or namespaces.
# If set to NO (the default) these members will be included in the # If set to NO (the default) these members will be included in the
...@@ -422,20 +384,19 @@ MAX_INITIALIZER_LINES = 0 ...@@ -422,20 +384,19 @@ MAX_INITIALIZER_LINES = 0
SHOW_USED_FILES = YES SHOW_USED_FILES = YES
# If the sources in your project are distributed over multiple # If the sources in your project are distributed over multiple directories
# directories then setting the SHOW_DIRECTORIES tag to YES will show # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
# the directory hierarchy in the documentation. The default is NO. # in the documentation. The default is NO.
SHOW_DIRECTORIES = YES SHOW_DIRECTORIES = YES
# The FILE_VERSION_FILTER tag can be used to specify a program or # The FILE_VERSION_FILTER tag can be used to specify a program or script that
# script that doxygen should invoke to get the current version for # doxygen should invoke to get the current version for each file (typically from the
# each file (typically from the version control system). Doxygen will # version control system). Doxygen will invoke the program by executing (via
# invoke the program by executing (via popen()) the command <command> # popen()) the command <command> <input-file>, where <command> is the value of
# <input-file>, where <command> is the value of the # the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
# FILE_VERSION_FILTER tag, and <input-file> is the name of an input # provided by doxygen. Whatever the program writes to standard output
# file provided by doxygen. Whatever the program writes to standard # is used as the file version. See the manual for examples.
# output is used as the file version. See the manual for examples.
FILE_VERSION_FILTER = FILE_VERSION_FILTER =
...@@ -494,53 +455,20 @@ WARN_LOGFILE = ...@@ -494,53 +455,20 @@ WARN_LOGFILE =
# configuration options related to the input files # configuration options related to the input files
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# The INPUT tag can be used to specify the files and/or directories # The INPUT tag can be used to specify the files and/or directories that contain
# that contain documented source files. You may enter file names like # documented source files. You may enter file names like "myfile.cpp" or
# "myfile.cpp" or directories like "/usr/src/myproject". Separate the # directories like "/usr/src/myproject". Separate the files or directories
# files or directories with spaces. # with spaces.
INPUT = @srcdir@/doc/doxygen/doxygroups.cc \ INPUT = @srcdir@/libsupc++/cxxabi.h \
@srcdir@/include/precompiled/stdc++.h \ @srcdir@/libsupc++/cxxabi-forced.h \
@srcdir@/include/precompiled/stdtr1c++.h \
@srcdir@/include/precompiled/extc++.h \
@srcdir@/libsupc++/cxxabi.h \
@srcdir@/libsupc++/exception \ @srcdir@/libsupc++/exception \
@srcdir@/libsupc++/new \ @srcdir@/libsupc++/new \
@srcdir@/libsupc++/typeinfo \ @srcdir@/libsupc++/typeinfo \
include/@host_alias@/bits \
include/bits \
include/debug \
include/parallel \
include/ext \
include/tr1 \
include/tr1_impl \
include/algorithm \ include/algorithm \
include/array \ include/array \
include/bitset \ include/bitset \
include/cassert \ include/date_time \
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/deque \ include/deque \
include/fstream \ include/fstream \
include/functional \ include/functional \
...@@ -574,14 +502,41 @@ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \ ...@@ -574,14 +502,41 @@ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \
include/utility \ include/utility \
include/valarray \ include/valarray \
include/vector \ 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_map \
include/backward/hash_set \ include/backward/hash_set \
include/backward/strstream \
include/debug/bitset \ include/debug/bitset \
include/debug/deque \ include/debug/deque \
include/debug/list \ include/debug/list \
include/debug/map \ include/debug/map \
include/debug/set \ include/debug/set \
include/debug/string \ include/debug/string \
include/debug/unordered_map \
include/debug/unordered_set \
include/debug/vector \ include/debug/vector \
include/ext/algorithm \ include/ext/algorithm \
include/ext/functional \ include/ext/functional \
...@@ -591,8 +546,6 @@ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \ ...@@ -591,8 +546,6 @@ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \
include/ext/rb_tree \ include/ext/rb_tree \
include/ext/rope \ include/ext/rope \
include/ext/slist \ include/ext/slist \
include/ext/pb_ds \
include/ext/pb_ds/detail \
include/parallel/algorithm \ include/parallel/algorithm \
include/parallel/numeric \ include/parallel/numeric \
include/tr1/array \ include/tr1/array \
...@@ -614,7 +567,6 @@ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \ ...@@ -614,7 +567,6 @@ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \
include/tr1/cwchar \ include/tr1/cwchar \
include/tr1/cwctype \ include/tr1/cwctype \
include/tr1/functional \ include/tr1/functional \
include/tr1/hashtable.h \
include/tr1/memory \ include/tr1/memory \
include/tr1/random \ include/tr1/random \
include/tr1/regex \ include/tr1/regex \
...@@ -622,7 +574,6 @@ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \ ...@@ -622,7 +574,6 @@ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \
include/tr1/type_traits \ include/tr1/type_traits \
include/tr1/unordered_map \ include/tr1/unordered_map \
include/tr1/unordered_set \ include/tr1/unordered_set \
include/tr1_impl/utility \
include/tr1_impl/array \ include/tr1_impl/array \
include/tr1_impl/cctype \ include/tr1_impl/cctype \
include/tr1_impl/cfenv \ include/tr1_impl/cfenv \
...@@ -638,27 +589,28 @@ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \ ...@@ -638,27 +589,28 @@ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \
include/tr1_impl/hashtable \ include/tr1_impl/hashtable \
include/tr1_impl/random \ include/tr1_impl/random \
include/tr1_impl/regex \ include/tr1_impl/regex \
include/tr1_impl/tuple \
include/tr1_impl/type_traits \ include/tr1_impl/type_traits \
include/tr1_impl/unordered_map \ include/tr1_impl/unordered_map \
include/tr1_impl/unordered_set \ include/tr1_impl/unordered_set \
include/tr1_impl/utility include/tr1_impl/utility \
include/@host_alias@/bits \
# This tag can be used to specify the character encoding of the source include/backward \
# files that doxygen parses. Internally doxygen uses the UTF-8 include/bits \
# encoding, which is also the default input encoding. Doxygen uses include/debug \
# libiconv (or the iconv built into libc) for the transcoding. See include/parallel \
# http://www.gnu.org/software/libiconv for the list of possible include/tr1 \
# encodings. include/tr1_impl \
include/ext \
INPUT_ENCODING = UTF-8 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 # 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 # 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 # and *.h) to filter out the source-files in the directories. If left
# blank the following patterns are tested: # blank the following patterns are tested:
# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.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 \ FILE_PATTERNS = *.h \
*.hpp \ *.hpp \
...@@ -694,14 +646,6 @@ EXCLUDE_PATTERNS = stamp-* \ ...@@ -694,14 +646,6 @@ EXCLUDE_PATTERNS = stamp-* \
*extc++.h* \ *extc++.h* \
*/.svn/* */.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 # The EXAMPLE_PATH tag can be used to specify one or more files or
# directories that contain example code fragments that are included (see # directories that contain example code fragments that are included (see
# the \include command). # the \include command).
...@@ -757,13 +701,10 @@ FILTER_SOURCE_FILES = NO ...@@ -757,13 +701,10 @@ FILTER_SOURCE_FILES = NO
# configuration options related to source browsing # configuration options related to source browsing
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# If the SOURCE_BROWSER tag is set to YES then a list of source files # If the SOURCE_BROWSER tag is set to YES then a list of source files will
# will be generated. Documented entities will be cross-referenced with # be generated. Documented entities will be cross-referenced with these sources.
# these sources. Note: To get rid of all source code in the generated # Note: To get rid of all source code in the generated output, make sure also
# output, make sure also VERBATIM_HEADERS is set to NO. If you have # VERBATIM_HEADERS is set to NO.
# 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
SOURCE_BROWSER = YES SOURCE_BROWSER = YES
...@@ -847,7 +788,7 @@ GENERATE_HTML = @do_html@ ...@@ -847,7 +788,7 @@ GENERATE_HTML = @do_html@
# If a relative path is entered the value of OUTPUT_DIRECTORY will be # 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. # 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 # 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 # each generated HTML page (for example: .htm,.php,.asp). If it is left blank
...@@ -874,7 +815,7 @@ HTML_FOOTER = ...@@ -874,7 +815,7 @@ HTML_FOOTER =
# the style sheet file to the HTML output directory, so don't put your own # 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! # 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, # 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 # files or namespaces will be aligned in HTML using tables. If set to
...@@ -889,14 +830,6 @@ HTML_ALIGN_MEMBERS = NO ...@@ -889,14 +830,6 @@ HTML_ALIGN_MEMBERS = NO
GENERATE_HTMLHELP = NO 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 # 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 # 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 # can add a path in front of the file if the result should not be
...@@ -1120,7 +1053,6 @@ XML_OUTPUT = xml ...@@ -1120,7 +1053,6 @@ XML_OUTPUT = xml
# which can be used by a validating XML parser to check the # which can be used by a validating XML parser to check the
# syntax of the XML files. # syntax of the XML files.
#XML_SCHEMA =
XML_SCHEMA = XML_SCHEMA =
# The XML_DTD tag can be used to specify an XML DTD, # The XML_DTD tag can be used to specify an XML DTD,
...@@ -1128,7 +1060,6 @@ XML_SCHEMA = ...@@ -1128,7 +1060,6 @@ XML_SCHEMA =
# syntax of the XML files. # syntax of the XML files.
XML_DTD = 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 # If the XML_PROGRAMLISTING tag is set to YES Doxygen will
# dump the program listings (including syntax highlighting # dump the program listings (including syntax highlighting
...@@ -1232,13 +1163,18 @@ INCLUDE_FILE_PATTERNS = ...@@ -1232,13 +1163,18 @@ INCLUDE_FILE_PATTERNS =
# instead of the = operator. # instead of the = operator.
PREDEFINED = __GTHREADS \ PREDEFINED = __GTHREADS \
"_GLIBCXX_STD_P= " \
"_GLIBCXX_STD_D= " \
_GLIBCXX_STD=std \ _GLIBCXX_STD=std \
_GLIBCXX_TR1=tr1 \ "_GLIBCXX_TR1= " \
"_GLIBCXX_BEGIN_NAMESPACE_TR1= " \
"_GLIBCXX_END_NAMESPACE_TR1= " \
"_GLIBCXX_BEGIN_NAMESPACE(name)=namespace name { " \ "_GLIBCXX_BEGIN_NAMESPACE(name)=namespace name { " \
"_GLIBCXX_BEGIN_NESTED_NAMESPACE(name, unused)=namespace name { " \ "_GLIBCXX_BEGIN_NESTED_NAMESPACE(name, unused)=namespace name { " \
_GLIBCXX_END_NAMESPACE=} \ _GLIBCXX_END_NAMESPACE=} \
_GLIBCXX_END_NESTED_NAMESPACE=} \ _GLIBCXX_END_NESTED_NAMESPACE=} \
"_GLIBCXX_TEMPLATE_ARGS=... " \ "_GLIBCXX_TEMPLATE_ARGS=... " \
_GLIBCXX_INCLUDE_AS_CXX0X \
_GLIBCXX_DEPRECATED \ _GLIBCXX_DEPRECATED \
_GLIBCXX_USE_WCHAR_T \ _GLIBCXX_USE_WCHAR_T \
_GLIBCXX_USE_LONG_LONG \ _GLIBCXX_USE_LONG_LONG \
...@@ -1248,11 +1184,10 @@ PREDEFINED = __GTHREADS \ ...@@ -1248,11 +1184,10 @@ PREDEFINED = __GTHREADS \
__glibcxx_class_requires3=// \ __glibcxx_class_requires3=// \
__glibcxx_class_requires4=// __glibcxx_class_requires4=//
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
# then this tag can be used to specify a list of macro names that # this tag can be used to specify a list of macro names that should be expanded.
# should be expanded. The macro definition that is found in the # The macro definition that is found in the sources will be used.
# sources will be used. Use the PREDEFINED tag if you want to use a # Use the PREDEFINED tag if you want to use a different macro definition.
# different macro definition.
EXPAND_AS_DEFINED = EXPAND_AS_DEFINED =
...@@ -1320,14 +1255,6 @@ PERL_PATH = /usr/bin/perl ...@@ -1320,14 +1255,6 @@ PERL_PATH = /usr/bin/perl
CLASS_DIAGRAMS = YES 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 # If set to YES, the inheritance and collaboration graphs will hide
# inheritance and usage relations if the target is undocumented # inheritance and usage relations if the target is undocumented
# or is not a class. # or is not a class.
...@@ -1385,21 +1312,19 @@ INCLUDE_GRAPH = NO ...@@ -1385,21 +1312,19 @@ INCLUDE_GRAPH = NO
INCLUDED_BY_GRAPH = NO INCLUDED_BY_GRAPH = NO
# If the CALL_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES # If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
# then doxygen will generate a call dependency graph for every global # generate a call dependency graph for every global function or class method.
# function or class method. Note that enabling this option will # Note that enabling this option will significantly increase the time of a run.
# significantly increase the time of a run. So in most cases it will # So in most cases it will be better to enable call graphs for selected
# be better to enable call graphs for selected functions only using # functions only using the \callgraph command.
# the \callgraph command.
CALL_GRAPH = NO CALL_GRAPH = NO
# If the CALLER_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will
# then doxygen will generate a caller dependency graph for every # generate a caller dependency graph for every global function or class method.
# global function or class method. Note that enabling this option # Note that enabling this option will significantly increase the time of a run.
# will significantly increase the time of a run. So in most cases it # So in most cases it will be better to enable caller graphs for selected
# will be better to enable caller graphs for selected functions only # functions only using the \callergraph command.
# using the \callergraph command.
CALLER_GRAPH = NO CALLER_GRAPH = NO
...@@ -1432,24 +1357,31 @@ DOT_PATH = ...@@ -1432,24 +1357,31 @@ DOT_PATH =
DOTFILE_DIRS = DOTFILE_DIRS =
# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
# number of nodes that will be shown in the graph. If the number of # (in pixels) of the graphs generated by dot. If a graph becomes larger than
# nodes in a graph becomes larger than this value, doxygen will # this value, doxygen will try to truncate the graph, so that it fits within
# truncate the graph, which is visualized by representing a node as a # the specified constraint. Beware that most browsers cannot cope with very
# red box. Note that doxygen if the number of direct children of the # large images.
# 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 MAX_DOT_GRAPH_WIDTH = 1024
# graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
# 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 # 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 # 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 # 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 # 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 # 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 # code bases. Also note that a graph may be further truncated if the graph's
# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. # 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 MAX_DOT_GRAPH_DEPTH = 0
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<a class="ulink" href="http://www.fsf.org/" target="_top">FSF <a class="ulink" href="http://www.fsf.org/" target="_top">FSF
</a> </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 class="ulink" href="17_intro/license.html" target="_top">License
</a> </a>
</p></div></div></div><hr /></div><p> </p></div></div></div><hr /></div><p>
...@@ -29,6 +29,9 @@ viewed online: ...@@ -29,6 +29,9 @@ viewed online:
<a class="ulink" href="libstdc++-html-USERS-4.2/index.html" target="_top">for the 4.2 release <a class="ulink" href="libstdc++-html-USERS-4.2/index.html" target="_top">for the 4.2 release
</a> </a>
</p></li><li><p> </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 class="ulink" href="latest-doxygen/index.html" target="_top">"the latest collection"
</a> </a>
(For the main development tree; see the date on the first page.) (For the main development tree; see the date on the first page.)
......
...@@ -63,6 +63,12 @@ viewed online: ...@@ -63,6 +63,12 @@ viewed online:
</listitem> </listitem>
<listitem> <listitem>
<para> <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">&quot;the latest collection&quot; <ulink url="latest-doxygen/index.html">&quot;the latest collection&quot;
</ulink> </ulink>
(For the main development tree; see the date on the first page.) (For the main development tree; see the date on the first page.)
......
// Allocators -*- C++ -*- // 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. // 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
...@@ -77,7 +77,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -77,7 +77,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @brief The "standard" allocator, as per [20.4]. * @brief The "standard" allocator, as per [20.4].
* *
* Further details: * Further details:
* http://gcc.gnu.org/onlinedocs/libstdc++/20_util/allocator.html * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt04ch11.html
*/ */
template<typename _Tp> template<typename _Tp>
class allocator: public __glibcxx_base_allocator<_Tp> class allocator: public __glibcxx_base_allocator<_Tp>
......
...@@ -231,7 +231,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -231,7 +231,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
{ }; { };
/// @brief 21.1.3.1 char_traits specializations /// 21.1.3.1 char_traits specializations
template<> template<>
struct char_traits<char> struct char_traits<char>
{ {
...@@ -301,7 +301,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -301,7 +301,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
#ifdef _GLIBCXX_USE_WCHAR_T #ifdef _GLIBCXX_USE_WCHAR_T
/// @brief 21.1.3.2 char_traits specializations /// 21.1.3.2 char_traits specializations
template<> template<>
struct char_traits<wchar_t> struct char_traits<wchar_t>
{ {
......
// Locale support (codecvt) -*- C++ -*- // 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. // 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
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _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 class codecvt_base
{ {
public: public:
...@@ -330,7 +330,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -330,7 +330,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
template<typename _InternT, typename _ExternT, typename _StateT> template<typename _InternT, typename _ExternT, typename _StateT>
locale::id codecvt<_InternT, _ExternT, _StateT>::id; locale::id codecvt<_InternT, _ExternT, _StateT>::id;
/// @brief class codecvt<char, char, mbstate_t> specialization. /// class codecvt<char, char, mbstate_t> specialization.
template<> template<>
class codecvt<char, char, mbstate_t> class codecvt<char, char, mbstate_t>
: public __codecvt_abstract_base<char, char, mbstate_t> : public __codecvt_abstract_base<char, char, mbstate_t>
...@@ -388,7 +388,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -388,7 +388,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
}; };
#ifdef _GLIBCXX_USE_WCHAR_T #ifdef _GLIBCXX_USE_WCHAR_T
/// @brief class codecvt<wchar_t, char, mbstate_t> specialization. /// class codecvt<wchar_t, char, mbstate_t> specialization.
template<> template<>
class codecvt<wchar_t, char, mbstate_t> class codecvt<wchar_t, char, mbstate_t>
: public __codecvt_abstract_base<wchar_t, char, mbstate_t> : public __codecvt_abstract_base<wchar_t, char, mbstate_t>
...@@ -448,7 +448,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -448,7 +448,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
}; };
#endif //_GLIBCXX_USE_WCHAR_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> template<typename _InternT, typename _ExternT, typename _StateT>
class codecvt_byname : public codecvt<_InternT, _ExternT, _StateT> class codecvt_byname : public codecvt<_InternT, _ExternT, _StateT>
{ {
......
...@@ -780,7 +780,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -780,7 +780,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
collate<wchar_t>::_M_transform(wchar_t*, const wchar_t*, size_t) const; collate<wchar_t>::_M_transform(wchar_t*, const wchar_t*, size_t) const;
#endif #endif
/// @brief class collate_byname [22.2.4.2]. /// class collate_byname [22.2.4.2].
template<typename _CharT> template<typename _CharT>
class collate_byname : public collate<_CharT> class collate_byname : public collate<_CharT>
{ {
......
...@@ -1511,7 +1511,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -1511,7 +1511,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
use_facet<ctype<wchar_t> >(const locale& __loc); use_facet<ctype<wchar_t> >(const locale& __loc);
#endif //_GLIBCXX_USE_WCHAR_T #endif //_GLIBCXX_USE_WCHAR_T
/// @brief class ctype_byname [22.2.1.2]. /// class ctype_byname [22.2.1.2].
template<typename _CharT> template<typename _CharT>
class ctype_byname : public ctype<_CharT> class ctype_byname : public ctype<_CharT>
{ {
...@@ -1912,7 +1912,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -1912,7 +1912,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc); numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc);
#endif #endif
/// @brief class numpunct_byname [22.2.3.2]. /// class numpunct_byname [22.2.3.2].
template<typename _CharT> template<typename _CharT>
class numpunct_byname : public numpunct<_CharT> class numpunct_byname : public numpunct<_CharT>
{ {
......
...@@ -674,7 +674,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -674,7 +674,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
template<typename _CharT, typename _InIter> template<typename _CharT, typename _InIter>
locale::id time_get<_CharT, _InIter>::id; 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> template<typename _CharT, typename _InIter>
class time_get_byname : public time_get<_CharT, _InIter> class time_get_byname : public time_get<_CharT, _InIter>
{ {
...@@ -798,7 +798,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -798,7 +798,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
template<typename _CharT, typename _OutIter> template<typename _CharT, typename _OutIter>
locale::id time_put<_CharT, _OutIter>::id; 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> template<typename _CharT, typename _OutIter>
class time_put_byname : public time_put<_CharT, _OutIter> class time_put_byname : public time_put<_CharT, _OutIter>
{ {
...@@ -1306,7 +1306,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -1306,7 +1306,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
const char*); const char*);
#endif #endif
/// @brief class moneypunct_byname [22.2.6.4]. /// class moneypunct_byname [22.2.6.4].
template<typename _CharT, bool _Intl> template<typename _CharT, bool _Intl>
class moneypunct_byname : public moneypunct<_CharT, _Intl> class moneypunct_byname : public moneypunct<_CharT, _Intl>
{ {
...@@ -1887,7 +1887,7 @@ _GLIBCXX_END_LDBL_NAMESPACE ...@@ -1887,7 +1887,7 @@ _GLIBCXX_END_LDBL_NAMESPACE
messages<wchar_t>::do_get(catalog, int, int, const wstring&) const; messages<wchar_t>::do_get(catalog, int, int, const wstring&) const;
#endif #endif
/// @brief class messages_byname [22.2.7.2]. /// class messages_byname [22.2.7.2].
template<typename _CharT> template<typename _CharT>
class messages_byname : public messages<_CharT> class messages_byname : public messages<_CharT>
{ {
......
...@@ -44,11 +44,19 @@ ...@@ -44,11 +44,19 @@
*/ */
// Debug mode namespaces. // Debug mode namespaces.
/**
* @namespace std::__debug
* @brief GNU debug code, replaces standard behavior with debug behavior.
*/
namespace std namespace std
{ {
namespace __debug { } namespace __debug { }
} }
/** @namespace __gnu_debug
* @brief GNU debug classes for public use.
*/
namespace __gnu_debug namespace __gnu_debug
{ {
using namespace std::__debug; using namespace std::__debug;
......
...@@ -45,7 +45,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -45,7 +45,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
using std::size_t; using std::size_t;
using std::ptrdiff_t; using std::ptrdiff_t;
/// @brief Base class. /// Base class.
template<typename _Tp> template<typename _Tp>
class array_allocator_base class array_allocator_base
{ {
......
...@@ -706,6 +706,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -706,6 +706,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
}; };
}; };
/// Primary template
template<typename _Tp> template<typename _Tp>
class bitmap_allocator : private free_list class bitmap_allocator : private free_list
{ {
......
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _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 // This includes conversions and comparisons between various character
// sets. This object encapsulates data that may need to be shared between // sets. This object encapsulates data that may need to be shared between
// char_traits, codecvt and ctype. // char_traits, codecvt and ctype.
...@@ -206,7 +206,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -206,7 +206,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
} }
}; };
/// @brief encoding_char_traits. /// encoding_char_traits
// Custom traits type with encoding_state for the state type, and the // Custom traits type with encoding_state for the state type, and the
// associated fpos<encoding_state> for the position type, all other // associated fpos<encoding_state> for the position type, all other
// bits equivalent to the required char_traits instantiations. // bits equivalent to the required char_traits instantiations.
...@@ -224,7 +224,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -224,7 +224,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
using __gnu_cxx::encoding_state; 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 // This partial specialization takes advantage of iconv to provide
// code conversions between a large number of character encodings. // code conversions between a large number of character encodings.
template<typename _InternT, typename _ExternT> template<typename _InternT, typename _ExternT>
......
...@@ -240,7 +240,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -240,7 +240,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
{ return &_M_mutex; } { return &_M_mutex; }
}; };
/// @brief Scoped lock idiom. /// Scoped lock idiom.
// Acquire the mutex here with a constructor call, then release with // Acquire the mutex here with a constructor call, then release with
// the destructor call in accordance with RAII style. // the destructor call in accordance with RAII style.
class __scoped_lock class __scoped_lock
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
/// @brief class enc_filebuf. /// class enc_filebuf.
template<typename _CharT> template<typename _CharT>
class enc_filebuf class enc_filebuf
: public std::basic_filebuf<_CharT, encoding_char_traits<_CharT> > : public std::basic_filebuf<_CharT, encoding_char_traits<_CharT> >
......
...@@ -47,7 +47,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -47,7 +47,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
typedef void (*__destroy_handler)(void*); typedef void (*__destroy_handler)(void*);
/// @brief Base class for pool object. /// Base class for pool object.
struct __pool_base struct __pool_base
{ {
// Using short int as type for the binmap implies we are never // Using short int as type for the binmap implies we are never
...@@ -455,7 +455,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -455,7 +455,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
}; };
#endif #endif
/// @brief Policy for shared __pool objects. /// Policy for shared __pool objects.
template<template <bool> class _PoolTp, bool _Thread> template<template <bool> class _PoolTp, bool _Thread>
struct __common_pool_policy : public __common_pool_base<_PoolTp, _Thread> struct __common_pool_policy : public __common_pool_base<_PoolTp, _Thread>
{ {
...@@ -550,7 +550,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -550,7 +550,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
}; };
#endif #endif
/// @brief Policy for individual __pool objects. /// Policy for individual __pool objects.
template<typename _Tp, template <bool> class _PoolTp, bool _Thread> template<typename _Tp, template <bool> class _PoolTp, bool _Thread>
struct __per_type_pool_policy struct __per_type_pool_policy
: public __per_type_pool_base<_Tp, _PoolTp, _Thread> : public __per_type_pool_base<_Tp, _PoolTp, _Thread>
...@@ -565,7 +565,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -565,7 +565,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
}; };
/// @brief Base class for _Tp dependent member functions. /// Base class for _Tp dependent member functions.
template<typename _Tp> template<typename _Tp>
class __mt_alloc_base class __mt_alloc_base
{ {
...@@ -621,7 +621,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -621,7 +621,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
* the "global" list). * the "global" list).
* *
* Further details: * Further details:
* http://gcc.gnu.org/onlinedocs/libstdc++/ext/mt_allocator.html * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt12ch32.html
*/ */
template<typename _Tp, template<typename _Tp,
typename _Poolp = __common_pool_policy<__pool, __thread_default> > typename _Poolp = __common_pool_policy<__pool, __thread_default> >
......
...@@ -52,9 +52,8 @@ ...@@ -52,9 +52,8 @@
/** /**
* @namespace __gnu_pbds * @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 namespace __gnu_pbds
{ {
// A trivial iterator tag. Signifies that the iterators has none of // A trivial iterator tag. Signifies that the iterators has none of
......
...@@ -119,7 +119,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -119,7 +119,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
}; };
/// @brief class __pool_alloc. /// class __pool_alloc.
template<typename _Tp> template<typename _Tp>
class __pool_alloc : private __pool_alloc_base class __pool_alloc : private __pool_alloc_base
{ {
......
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
/// @brief class stdio_sync_filebuf. /// class stdio_sync_filebuf.
template<typename _CharT, typename _Traits = std::char_traits<_CharT> > template<typename _CharT, typename _Traits = std::char_traits<_CharT> >
class stdio_sync_filebuf : public std::basic_streambuf<_CharT, _Traits> class stdio_sync_filebuf : public std::basic_streambuf<_CharT, _Traits>
{ {
......
...@@ -80,6 +80,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -80,6 +80,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
std::tr1::mt19937 _M_generator; std::tr1::mt19937 _M_generator;
}; };
/// Thown by throw_allocator.
struct forced_exception_error : public std::exception struct forced_exception_error : public std::exception
{ }; { };
...@@ -94,6 +95,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -94,6 +95,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
#endif #endif
} }
/// Base class.
class throw_allocator_base class throw_allocator_base
{ {
public: public:
...@@ -184,7 +186,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -184,7 +186,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
static size_t _S_label; static size_t _S_label;
}; };
/// Allocator class with logging and exception control.
template<typename T> template<typename T>
class throw_allocator : public throw_allocator_base class throw_allocator : public throw_allocator_base
{ {
...@@ -309,7 +311,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -309,7 +311,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
twister_rand_gen throw_allocator_base::_S_g; twister_rand_gen throw_allocator_base::_S_g;
throw_allocator_base::map_type throw_allocator_base::map_type
throw_allocator_base::_S_map; throw_allocator_base::_S_map;
double throw_allocator_base::_S_throw_prob; double throw_allocator_base::_S_throw_prob;
......
...@@ -50,6 +50,9 @@ ...@@ -50,6 +50,9 @@
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
/** @namespace __gnu_cxx::typelist
* @brief GNU typelist extensions for public compile-time use.
*/
namespace typelist namespace typelist
{ {
struct null_type { }; struct null_type { };
......
...@@ -47,6 +47,11 @@ ...@@ -47,6 +47,11 @@
// Parallel mode namespaces. // Parallel mode namespaces.
/**
* @namespace std::__parallel
* @brief GNU parallel code, replaces standard behavior with parallel behavior.
*/
namespace std namespace std
{ {
namespace __parallel { } namespace __parallel { }
...@@ -54,7 +59,7 @@ namespace std ...@@ -54,7 +59,7 @@ namespace std
/** /**
* @namespace __gnu_parallel * @namespace __gnu_parallel
* @brief GNU parallel classes for public use. * @brief GNU parallel code for public use.
*/ */
namespace __gnu_parallel namespace __gnu_parallel
{ {
......
...@@ -45,7 +45,8 @@ ...@@ -45,7 +45,8 @@
namespace std namespace std
{ {
// duration types // duration types
/// nanoseconds
class nanoseconds class nanoseconds
{ {
public: public:
...@@ -90,7 +91,7 @@ namespace std ...@@ -90,7 +91,7 @@ namespace std
class minutes; class minutes;
class hours; class hours;
// timepoint type /// timepoint type
class system_time class system_time
{ {
public: public:
......
...@@ -53,6 +53,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -53,6 +53,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
extern const error_category& system_category; extern const error_category& system_category;
/// error_category
struct error_category struct error_category
{ {
error_category() { } error_category() { }
...@@ -78,6 +79,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -78,6 +79,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
operator=(const error_category&); operator=(const error_category&);
}; };
/// error_code
struct error_code struct error_code
{ {
error_code() throw() error_code() throw()
...@@ -133,6 +135,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -133,6 +135,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
const error_category* _M_cat; const error_category* _M_cat;
}; };
/// Thrown to indicate error code of underlying system.
class system_error : public std::runtime_error class system_error : public std::runtime_error
{ {
private: private:
......
...@@ -205,6 +205,7 @@ namespace std ...@@ -205,6 +205,7 @@ namespace std
} }
}; };
/// tuple
template<typename... _Elements> template<typename... _Elements>
class tuple : public _Tuple_impl<0, _Elements...> class tuple : public _Tuple_impl<0, _Elements...>
{ {
...@@ -275,9 +276,11 @@ namespace std ...@@ -275,9 +276,11 @@ namespace std
} }
}; };
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> template<typename _T1, typename _T2>
class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2> class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2>
{ {
...@@ -393,7 +396,7 @@ namespace std ...@@ -393,7 +396,7 @@ namespace std
template<typename _Tp> template<typename _Tp>
struct tuple_size; struct tuple_size;
/// @brief class tuple_size /// class tuple_size
template<typename... _Elements> template<typename... _Elements>
struct tuple_size<tuple<_Elements...> > struct tuple_size<tuple<_Elements...> >
{ {
......
// <type_traits> -*- C++ -*- // <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 // 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
...@@ -63,6 +63,8 @@ ...@@ -63,6 +63,8 @@
namespace std namespace std
{ {
// Primary classification traits. // Primary classification traits.
/// is_lvalue_reference
template<typename> template<typename>
struct is_lvalue_reference struct is_lvalue_reference
: public false_type { }; : public false_type { };
...@@ -71,6 +73,7 @@ namespace std ...@@ -71,6 +73,7 @@ namespace std
struct is_lvalue_reference<_Tp&> struct is_lvalue_reference<_Tp&>
: public true_type { }; : public true_type { };
/// is_rvalue_reference
template<typename> template<typename>
struct is_rvalue_reference struct is_rvalue_reference
: public false_type { }; : public false_type { };
...@@ -80,6 +83,8 @@ namespace std ...@@ -80,6 +83,8 @@ namespace std
: public true_type { }; : public true_type { };
// Secondary classification traits. // Secondary classification traits.
/// is_reference
template<typename _Tp> template<typename _Tp>
struct is_reference struct is_reference
: public integral_constant<bool, (is_lvalue_reference<_Tp>::value : public integral_constant<bool, (is_lvalue_reference<_Tp>::value
...@@ -87,6 +92,8 @@ namespace std ...@@ -87,6 +92,8 @@ namespace std
{ }; { };
// Reference transformations. // Reference transformations.
/// remove_reference
template<typename _Tp> template<typename _Tp>
struct remove_reference struct remove_reference
{ typedef _Tp type; }; { typedef _Tp type; };
...@@ -113,6 +120,7 @@ namespace std ...@@ -113,6 +120,7 @@ namespace std
struct __add_lvalue_reference_helper<_Tp, false, true> struct __add_lvalue_reference_helper<_Tp, false, true>
{ typedef typename remove_reference<_Tp>::type& type; }; { typedef typename remove_reference<_Tp>::type& type; };
/// add_lvalue_reference
template<typename _Tp> template<typename _Tp>
struct add_lvalue_reference struct add_lvalue_reference
: public __add_lvalue_reference_helper<_Tp> : public __add_lvalue_reference_helper<_Tp>
...@@ -127,12 +135,14 @@ namespace std ...@@ -127,12 +135,14 @@ namespace std
struct __add_rvalue_reference_helper<_Tp, true> struct __add_rvalue_reference_helper<_Tp, true>
{ typedef _Tp&& type; }; { typedef _Tp&& type; };
/// add_rvalue_reference
template<typename _Tp> template<typename _Tp>
struct add_rvalue_reference struct add_rvalue_reference
: public __add_rvalue_reference_helper<_Tp> : public __add_rvalue_reference_helper<_Tp>
{ }; { };
// Scalar properties and transformations. // Scalar properties and transformations.
template<typename _Tp, template<typename _Tp,
bool = is_integral<_Tp>::value, bool = is_integral<_Tp>::value,
bool = is_floating_point<_Tp>::value> bool = is_floating_point<_Tp>::value>
...@@ -148,11 +158,13 @@ namespace std ...@@ -148,11 +158,13 @@ namespace std
: public integral_constant<bool, _Tp(-1) < _Tp(0)> : public integral_constant<bool, _Tp(-1) < _Tp(0)>
{ }; { };
/// is_signed
template<typename _Tp> template<typename _Tp>
struct is_signed struct is_signed
: public integral_constant<bool, __is_signed_helper<_Tp>::value> : public integral_constant<bool, __is_signed_helper<_Tp>::value>
{ }; { };
/// is_unsigned
template<typename _Tp> template<typename _Tp>
struct is_unsigned struct is_unsigned
: public integral_constant<bool, (is_arithmetic<_Tp>::value : public integral_constant<bool, (is_arithmetic<_Tp>::value
...@@ -160,46 +172,56 @@ namespace std ...@@ -160,46 +172,56 @@ namespace std
{ }; { };
// Member introspection. // Member introspection.
/// is_pod
template<typename _Tp> template<typename _Tp>
struct is_pod struct is_pod
: public integral_constant<bool, __is_pod(_Tp)> : public integral_constant<bool, __is_pod(_Tp)>
{ }; { };
/// has_trivial_default_constructor
template<typename _Tp> template<typename _Tp>
struct has_trivial_default_constructor struct has_trivial_default_constructor
: public integral_constant<bool, __has_trivial_constructor(_Tp)> : public integral_constant<bool, __has_trivial_constructor(_Tp)>
{ }; { };
/// has_trivial_copy_constructor
template<typename _Tp> template<typename _Tp>
struct has_trivial_copy_constructor struct has_trivial_copy_constructor
: public integral_constant<bool, __has_trivial_copy(_Tp)> : public integral_constant<bool, __has_trivial_copy(_Tp)>
{ }; { };
/// has_trivial_assign
template<typename _Tp> template<typename _Tp>
struct has_trivial_assign struct has_trivial_assign
: public integral_constant<bool, __has_trivial_assign(_Tp)> : public integral_constant<bool, __has_trivial_assign(_Tp)>
{ }; { };
/// has_trivial_destructor
template<typename _Tp> template<typename _Tp>
struct has_trivial_destructor struct has_trivial_destructor
: public integral_constant<bool, __has_trivial_destructor(_Tp)> : public integral_constant<bool, __has_trivial_destructor(_Tp)>
{ }; { };
/// has_nothrow_default_destructor
template<typename _Tp> template<typename _Tp>
struct has_nothrow_default_constructor struct has_nothrow_default_constructor
: public integral_constant<bool, __has_nothrow_constructor(_Tp)> : public integral_constant<bool, __has_nothrow_constructor(_Tp)>
{ }; { };
/// has_nothrow_copy_destructor
template<typename _Tp> template<typename _Tp>
struct has_nothrow_copy_constructor struct has_nothrow_copy_constructor
: public integral_constant<bool, __has_nothrow_copy(_Tp)> : public integral_constant<bool, __has_nothrow_copy(_Tp)>
{ }; { };
/// has_nothrow_assign
template<typename _Tp> template<typename _Tp>
struct has_nothrow_assign struct has_nothrow_assign
: public integral_constant<bool, __has_nothrow_assign(_Tp)> : public integral_constant<bool, __has_nothrow_assign(_Tp)>
{ }; { };
/// is_base_of
template<typename _Base, typename _Derived> template<typename _Base, typename _Derived>
struct is_base_of struct is_base_of
: public integral_constant<bool, __is_base_of(_Base, _Derived)> : public integral_constant<bool, __is_base_of(_Base, _Derived)>
...@@ -232,7 +254,7 @@ namespace std ...@@ -232,7 +254,7 @@ namespace std
template<typename _From, typename _To, template<typename _From, typename _To,
bool = (is_void<_From>::value || is_void<_To>::value bool = (is_void<_From>::value || is_void<_To>::value
|| is_function<_To>::value || is_array<_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 || (is_floating_point<typename
remove_reference<_From>::type>::value remove_reference<_From>::type>::value
&& __is_int_or_cref<_To>::__value))> && __is_int_or_cref<_To>::__value))>
...@@ -252,6 +274,7 @@ namespace std ...@@ -252,6 +274,7 @@ namespace std
// XXX FIXME // XXX FIXME
// The C++0x specifications are different, see N2255. // The C++0x specifications are different, see N2255.
/// is_convertible
template<typename _From, typename _To> template<typename _From, typename _To>
struct is_convertible struct is_convertible
: public integral_constant<bool, : public integral_constant<bool,
...@@ -268,6 +291,16 @@ namespace std ...@@ -268,6 +291,16 @@ namespace std
}; };
}; };
/**
* @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 = template<std::size_t _Len, std::size_t _Align =
__alignof__(typename __aligned_storage_msa<_Len>::__type)> __alignof__(typename __aligned_storage_msa<_Len>::__type)>
struct aligned_storage struct aligned_storage
...@@ -281,21 +314,25 @@ namespace std ...@@ -281,21 +314,25 @@ namespace std
// Define a nested type if some predicate holds. // Define a nested type if some predicate holds.
/// Primary template.
template<bool, typename _Tp = void> template<bool, typename _Tp = void>
struct enable_if struct enable_if
{ }; { };
/// Partial specialization for true.
template<typename _Tp> template<typename _Tp>
struct enable_if<true, _Tp> struct enable_if<true, _Tp>
{ typedef _Tp type; }; { typedef _Tp type; };
// Like a conditional expression, but for types. If true, first, if // A conditional expression, but for types.
// false, second. // If true, first, if false, second.
/// Primary template.
template<bool _Cond, typename _Iftrue, typename _Iffalse> template<bool _Cond, typename _Iftrue, typename _Iffalse>
struct conditional struct conditional
{ typedef _Iftrue type; }; { typedef _Iftrue type; };
/// Partial specialization for false.
template<typename _Iftrue, typename _Iffalse> template<typename _Iftrue, typename _Iffalse>
struct conditional<false, _Iftrue, _Iffalse> struct conditional<false, _Iftrue, _Iffalse>
{ typedef _Iffalse type; }; { typedef _Iffalse type; };
...@@ -321,6 +358,7 @@ namespace std ...@@ -321,6 +358,7 @@ namespace std
struct __decay_selector<_Up, false, true> struct __decay_selector<_Up, false, true>
{ typedef typename add_pointer<_Up>::type __type; }; { typedef typename add_pointer<_Up>::type __type; };
/// decay
template<typename _Tp> template<typename _Tp>
struct decay struct decay
{ {
...@@ -428,9 +466,9 @@ namespace std ...@@ -428,9 +466,9 @@ namespace std
typedef typename conditional<__b1, __smallest, __cond_type>::type __type; typedef typename conditional<__b1, __smallest, __cond_type>::type __type;
}; };
// Primary class template.
// Given an integral/enum type, return the corresponding unsigned // Given an integral/enum type, return the corresponding unsigned
// integer type. // integer type.
/// Primary template.
template<typename _Tp> template<typename _Tp>
struct make_unsigned struct make_unsigned
{ typedef typename __make_unsigned_selector<_Tp>::__type type; }; { typedef typename __make_unsigned_selector<_Tp>::__type type; };
...@@ -503,9 +541,9 @@ namespace std ...@@ -503,9 +541,9 @@ namespace std
typedef typename conditional<__b1, __smallest, __cond_type>::type __type; typedef typename conditional<__b1, __smallest, __cond_type>::type __type;
}; };
// Primary class template.
// Given an integral/enum type, return the corresponding signed // Given an integral/enum type, return the corresponding signed
// integer type. // integer type.
/// Primary template.
template<typename _Tp> template<typename _Tp>
struct make_signed struct make_signed
{ typedef typename __make_signed_selector<_Tp>::__type type; }; { typedef typename __make_signed_selector<_Tp>::__type type; };
......
// Special functions -*- C++ -*- // Special functions -*- C++ -*-
// Copyright (C) 2006-2007 // Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc. // 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
...@@ -61,14 +61,7 @@ namespace tr1 ...@@ -61,14 +61,7 @@ namespace tr1
// [5.2] Special functions // [5.2] Special functions
/**
* @ingroup tr1_math_spec_func
* @{
*/
//
// Implementation-space details. // Implementation-space details.
//
namespace __detail namespace __detail
{ {
...@@ -633,9 +626,6 @@ namespace tr1 ...@@ -633,9 +626,6 @@ namespace tr1
} }
} // namespace std::tr1::__detail } // namespace std::tr1::__detail
/* @} */ // group tr1_math_spec_func
} }
} }
......
// Special functions -*- C++ -*- // Special functions -*- C++ -*-
// Copyright (C) 2006-2007 // Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc. // 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
...@@ -59,14 +59,7 @@ namespace tr1 ...@@ -59,14 +59,7 @@ namespace tr1
// [5.2] Special functions // [5.2] Special functions
/**
* @ingroup tr1_math_spec_func
* @{
*/
//
// Implementation-space details. // Implementation-space details.
//
namespace __detail namespace __detail
{ {
...@@ -203,9 +196,6 @@ namespace tr1 ...@@ -203,9 +196,6 @@ namespace tr1
} }
} // namespace std::tr1::__detail } // namespace std::tr1::__detail
/* @} */ // group tr1_math_spec_func
} }
} }
......
// TR1 cmath -*- C++ -*- // 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 // 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
...@@ -56,15 +56,10 @@ ...@@ -56,15 +56,10 @@
# undef _GLIBCXX_INCLUDE_AS_TR1 # undef _GLIBCXX_INCLUDE_AS_TR1
#endif #endif
/**
* @defgroup tr1_math_spec_func Mathematical Special Functions
* A collection of advanced mathematical special functions.
* @{
*/
#include <bits/stl_algobase.h> #include <bits/stl_algobase.h>
#include <limits> #include <limits>
#include <tr1/type_traits> #include <tr1/type_traits>
#include <tr1/gamma.tcc> #include <tr1/gamma.tcc>
#include <tr1/bessel_function.tcc> #include <tr1/bessel_function.tcc>
#include <tr1/beta_function.tcc> #include <tr1/beta_function.tcc>
...@@ -77,12 +72,16 @@ ...@@ -77,12 +72,16 @@
#include <tr1/poly_laguerre.tcc> #include <tr1/poly_laguerre.tcc>
#include <tr1/riemann_zeta.tcc> #include <tr1/riemann_zeta.tcc>
// namespace std::tr1
namespace std namespace std
{ {
namespace tr1 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 inline float
assoc_laguerref(unsigned int __n, unsigned int __m, float __x) assoc_laguerref(unsigned int __n, unsigned int __m, float __x)
{ return __detail::__assoc_laguerre<float>(__n, __m, __x); } { return __detail::__assoc_laguerre<float>(__n, __m, __x); }
...@@ -93,6 +92,7 @@ namespace tr1 ...@@ -93,6 +92,7 @@ namespace tr1
return __detail::__assoc_laguerre<long double>(__n, __m, __x); return __detail::__assoc_laguerre<long double>(__n, __m, __x);
} }
/// 5.2.1.1 Associated Laguerre polynomials.
template<typename _Tp> template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type inline typename __gnu_cxx::__promote<_Tp>::__type
assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x) assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x)
...@@ -101,7 +101,6 @@ namespace tr1 ...@@ -101,7 +101,6 @@ namespace tr1
return __detail::__assoc_laguerre<__type>(__n, __m, __x); return __detail::__assoc_laguerre<__type>(__n, __m, __x);
} }
// 5.2.1.2 Associated Legendre functions.
inline float inline float
assoc_legendref(unsigned int __l, unsigned int __m, float __x) assoc_legendref(unsigned int __l, unsigned int __m, float __x)
{ return __detail::__assoc_legendre_p<float>(__l, __m, __x); } { return __detail::__assoc_legendre_p<float>(__l, __m, __x); }
...@@ -110,6 +109,7 @@ namespace tr1 ...@@ -110,6 +109,7 @@ namespace tr1
assoc_legendrel(unsigned int __l, unsigned int __m, long double __x) assoc_legendrel(unsigned int __l, unsigned int __m, long double __x)
{ return __detail::__assoc_legendre_p<long double>(__l, __m, __x); } { return __detail::__assoc_legendre_p<long double>(__l, __m, __x); }
/// 5.2.1.2 Associated Legendre functions.
template<typename _Tp> template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type inline typename __gnu_cxx::__promote<_Tp>::__type
assoc_legendre(unsigned int __l, unsigned int __m, _Tp __x) assoc_legendre(unsigned int __l, unsigned int __m, _Tp __x)
...@@ -118,7 +118,6 @@ namespace tr1 ...@@ -118,7 +118,6 @@ namespace tr1
return __detail::__assoc_legendre_p<__type>(__l, __m, __x); return __detail::__assoc_legendre_p<__type>(__l, __m, __x);
} }
// 5.2.1.3 Beta functions.
inline float inline float
betaf(float __x, float __y) betaf(float __x, float __y)
{ return __detail::__beta<float>(__x, __y); } { return __detail::__beta<float>(__x, __y); }
...@@ -127,6 +126,7 @@ namespace tr1 ...@@ -127,6 +126,7 @@ namespace tr1
betal(long double __x, long double __y) betal(long double __x, long double __y)
{ return __detail::__beta<long double>(__x, __y); } { return __detail::__beta<long double>(__x, __y); }
/// 5.2.1.3 Beta functions.
template<typename _Tpx, typename _Tpy> template<typename _Tpx, typename _Tpy>
inline typename __gnu_cxx::__promote_2<_Tpx, _Tpy>::__type inline typename __gnu_cxx::__promote_2<_Tpx, _Tpy>::__type
beta(_Tpx __x, _Tpy __y) beta(_Tpx __x, _Tpy __y)
...@@ -135,7 +135,6 @@ namespace tr1 ...@@ -135,7 +135,6 @@ namespace tr1
return __detail::__beta<__type>(__x, __y); return __detail::__beta<__type>(__x, __y);
} }
// 5.2.1.4 Complete elliptic integrals of the first kind.
inline float inline float
comp_ellint_1f(float __k) comp_ellint_1f(float __k)
{ return __detail::__comp_ellint_1<float>(__k); } { return __detail::__comp_ellint_1<float>(__k); }
...@@ -144,6 +143,7 @@ namespace tr1 ...@@ -144,6 +143,7 @@ namespace tr1
comp_ellint_1l(long double __k) comp_ellint_1l(long double __k)
{ return __detail::__comp_ellint_1<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> template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type inline typename __gnu_cxx::__promote<_Tp>::__type
comp_ellint_1(_Tp __k) comp_ellint_1(_Tp __k)
...@@ -152,7 +152,6 @@ namespace tr1 ...@@ -152,7 +152,6 @@ namespace tr1
return __detail::__comp_ellint_1<__type>(__k); return __detail::__comp_ellint_1<__type>(__k);
} }
// 5.2.1.5 Complete elliptic integrals of the second kind.
inline float inline float
comp_ellint_2f(float __k) comp_ellint_2f(float __k)
{ return __detail::__comp_ellint_2<float>(__k); } { return __detail::__comp_ellint_2<float>(__k); }
...@@ -161,6 +160,7 @@ namespace tr1 ...@@ -161,6 +160,7 @@ namespace tr1
comp_ellint_2l(long double __k) comp_ellint_2l(long double __k)
{ return __detail::__comp_ellint_2<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> template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type inline typename __gnu_cxx::__promote<_Tp>::__type
comp_ellint_2(_Tp __k) comp_ellint_2(_Tp __k)
...@@ -169,7 +169,6 @@ namespace tr1 ...@@ -169,7 +169,6 @@ namespace tr1
return __detail::__comp_ellint_2<__type>(__k); return __detail::__comp_ellint_2<__type>(__k);
} }
// 5.2.1.6 Complete elliptic integrals of the third kind.
inline float inline float
comp_ellint_3f(float __k, float __nu) comp_ellint_3f(float __k, float __nu)
{ return __detail::__comp_ellint_3<float>(__k, __nu); } { return __detail::__comp_ellint_3<float>(__k, __nu); }
...@@ -178,6 +177,7 @@ namespace tr1 ...@@ -178,6 +177,7 @@ namespace tr1
comp_ellint_3l(long double __k, long double __nu) comp_ellint_3l(long double __k, long double __nu)
{ return __detail::__comp_ellint_3<long double>(__k, __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> template<typename _Tp, typename _Tpn>
inline typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type inline typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type
comp_ellint_3(_Tp __k, _Tpn __nu) comp_ellint_3(_Tp __k, _Tpn __nu)
...@@ -186,7 +186,6 @@ namespace tr1 ...@@ -186,7 +186,6 @@ namespace tr1
return __detail::__comp_ellint_3<__type>(__k, __nu); return __detail::__comp_ellint_3<__type>(__k, __nu);
} }
// 5.2.1.7 Confluent hypergeometric functions.
inline float inline float
conf_hypergf(float __a, float __c, float __x) conf_hypergf(float __a, float __c, float __x)
{ return __detail::__conf_hyperg<float>(__a, __c, __x); } { return __detail::__conf_hyperg<float>(__a, __c, __x); }
...@@ -195,6 +194,7 @@ namespace tr1 ...@@ -195,6 +194,7 @@ namespace tr1
conf_hypergl(long double __a, long double __c, long double __x) conf_hypergl(long double __a, long double __c, long double __x)
{ return __detail::__conf_hyperg<long double>(__a, __c, __x); } { return __detail::__conf_hyperg<long double>(__a, __c, __x); }
/// 5.2.1.7 Confluent hypergeometric functions.
template<typename _Tpa, typename _Tpc, typename _Tp> template<typename _Tpa, typename _Tpc, typename _Tp>
inline typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type inline typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type
conf_hyperg(_Tpa __a, _Tpc __c, _Tp __x) conf_hyperg(_Tpa __a, _Tpc __c, _Tp __x)
...@@ -203,7 +203,6 @@ namespace tr1 ...@@ -203,7 +203,6 @@ namespace tr1
return __detail::__conf_hyperg<__type>(__a, __c, __x); return __detail::__conf_hyperg<__type>(__a, __c, __x);
} }
// 5.2.1.8 Regular modified cylindrical Bessel functions.
inline float inline float
cyl_bessel_if(float __nu, float __x) cyl_bessel_if(float __nu, float __x)
{ return __detail::__cyl_bessel_i<float>(__nu, __x); } { return __detail::__cyl_bessel_i<float>(__nu, __x); }
...@@ -212,6 +211,7 @@ namespace tr1 ...@@ -212,6 +211,7 @@ namespace tr1
cyl_bessel_il(long double __nu, long double __x) cyl_bessel_il(long double __nu, long double __x)
{ return __detail::__cyl_bessel_i<long double>(__nu, __x); } { return __detail::__cyl_bessel_i<long double>(__nu, __x); }
/// 5.2.1.8 Regular modified cylindrical Bessel functions.
template<typename _Tpnu, typename _Tp> template<typename _Tpnu, typename _Tp>
inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
cyl_bessel_i(_Tpnu __nu, _Tp __x) cyl_bessel_i(_Tpnu __nu, _Tp __x)
...@@ -220,7 +220,6 @@ namespace tr1 ...@@ -220,7 +220,6 @@ namespace tr1
return __detail::__cyl_bessel_i<__type>(__nu, __x); return __detail::__cyl_bessel_i<__type>(__nu, __x);
} }
// 5.2.1.9 Cylindrical Bessel functions (of the first kind).
inline float inline float
cyl_bessel_jf(float __nu, float __x) cyl_bessel_jf(float __nu, float __x)
{ return __detail::__cyl_bessel_j<float>(__nu, __x); } { return __detail::__cyl_bessel_j<float>(__nu, __x); }
...@@ -229,6 +228,7 @@ namespace tr1 ...@@ -229,6 +228,7 @@ namespace tr1
cyl_bessel_jl(long double __nu, long double __x) cyl_bessel_jl(long double __nu, long double __x)
{ return __detail::__cyl_bessel_j<long double>(__nu, __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> template<typename _Tpnu, typename _Tp>
inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
cyl_bessel_j(_Tpnu __nu, _Tp __x) cyl_bessel_j(_Tpnu __nu, _Tp __x)
...@@ -237,7 +237,6 @@ namespace tr1 ...@@ -237,7 +237,6 @@ namespace tr1
return __detail::__cyl_bessel_j<__type>(__nu, __x); return __detail::__cyl_bessel_j<__type>(__nu, __x);
} }
// 5.2.1.10 Irregular modified cylindrical Bessel functions.
inline float inline float
cyl_bessel_kf(float __nu, float __x) cyl_bessel_kf(float __nu, float __x)
{ return __detail::__cyl_bessel_k<float>(__nu, __x); } { return __detail::__cyl_bessel_k<float>(__nu, __x); }
...@@ -246,6 +245,7 @@ namespace tr1 ...@@ -246,6 +245,7 @@ namespace tr1
cyl_bessel_kl(long double __nu, long double __x) cyl_bessel_kl(long double __nu, long double __x)
{ return __detail::__cyl_bessel_k<long double>(__nu, __x); } { return __detail::__cyl_bessel_k<long double>(__nu, __x); }
/// 5.2.1.10 Irregular modified cylindrical Bessel functions.
template<typename _Tpnu, typename _Tp> template<typename _Tpnu, typename _Tp>
inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
cyl_bessel_k(_Tpnu __nu, _Tp __x) cyl_bessel_k(_Tpnu __nu, _Tp __x)
...@@ -254,7 +254,6 @@ namespace tr1 ...@@ -254,7 +254,6 @@ namespace tr1
return __detail::__cyl_bessel_k<__type>(__nu, __x); return __detail::__cyl_bessel_k<__type>(__nu, __x);
} }
// 5.2.1.11 Cylindrical Neumann functions.
inline float inline float
cyl_neumannf(float __nu, float __x) cyl_neumannf(float __nu, float __x)
{ return __detail::__cyl_neumann_n<float>(__nu, __x); } { return __detail::__cyl_neumann_n<float>(__nu, __x); }
...@@ -263,6 +262,7 @@ namespace tr1 ...@@ -263,6 +262,7 @@ namespace tr1
cyl_neumannl(long double __nu, long double __x) cyl_neumannl(long double __nu, long double __x)
{ return __detail::__cyl_neumann_n<long double>(__nu, __x); } { return __detail::__cyl_neumann_n<long double>(__nu, __x); }
/// 5.2.1.11 Cylindrical Neumann functions.
template<typename _Tpnu, typename _Tp> template<typename _Tpnu, typename _Tp>
inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type
cyl_neumann(_Tpnu __nu, _Tp __x) cyl_neumann(_Tpnu __nu, _Tp __x)
...@@ -271,7 +271,6 @@ namespace tr1 ...@@ -271,7 +271,6 @@ namespace tr1
return __detail::__cyl_neumann_n<__type>(__nu, __x); return __detail::__cyl_neumann_n<__type>(__nu, __x);
} }
// 5.2.1.12 Incomplete elliptic integrals of the first kind.
inline float inline float
ellint_1f(float __k, float __phi) ellint_1f(float __k, float __phi)
{ return __detail::__ellint_1<float>(__k, __phi); } { return __detail::__ellint_1<float>(__k, __phi); }
...@@ -280,6 +279,7 @@ namespace tr1 ...@@ -280,6 +279,7 @@ namespace tr1
ellint_1l(long double __k, long double __phi) ellint_1l(long double __k, long double __phi)
{ return __detail::__ellint_1<long double>(__k, __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> template<typename _Tp, typename _Tpp>
inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type
ellint_1(_Tp __k, _Tpp __phi) ellint_1(_Tp __k, _Tpp __phi)
...@@ -288,7 +288,6 @@ namespace tr1 ...@@ -288,7 +288,6 @@ namespace tr1
return __detail::__ellint_1<__type>(__k, __phi); return __detail::__ellint_1<__type>(__k, __phi);
} }
// 5.2.1.13 Incomplete elliptic integrals of the second kind.
inline float inline float
ellint_2f(float __k, float __phi) ellint_2f(float __k, float __phi)
{ return __detail::__ellint_2<float>(__k, __phi); } { return __detail::__ellint_2<float>(__k, __phi); }
...@@ -297,6 +296,7 @@ namespace tr1 ...@@ -297,6 +296,7 @@ namespace tr1
ellint_2l(long double __k, long double __phi) ellint_2l(long double __k, long double __phi)
{ return __detail::__ellint_2<long double>(__k, __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> template<typename _Tp, typename _Tpp>
inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type
ellint_2(_Tp __k, _Tpp __phi) ellint_2(_Tp __k, _Tpp __phi)
...@@ -305,7 +305,6 @@ namespace tr1 ...@@ -305,7 +305,6 @@ namespace tr1
return __detail::__ellint_2<__type>(__k, __phi); return __detail::__ellint_2<__type>(__k, __phi);
} }
// 5.2.1.14 Incomplete elliptic integrals of the third kind.
inline float inline float
ellint_3f(float __k, float __nu, float __phi) ellint_3f(float __k, float __nu, float __phi)
{ return __detail::__ellint_3<float>(__k, __nu, __phi); } { return __detail::__ellint_3<float>(__k, __nu, __phi); }
...@@ -314,6 +313,7 @@ namespace tr1 ...@@ -314,6 +313,7 @@ namespace tr1
ellint_3l(long double __k, long double __nu, long double __phi) ellint_3l(long double __k, long double __nu, long double __phi)
{ return __detail::__ellint_3<long double>(__k, __nu, __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> template<typename _Tp, typename _Tpn, typename _Tpp>
inline typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type inline typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type
ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi) ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi)
...@@ -322,7 +322,6 @@ namespace tr1 ...@@ -322,7 +322,6 @@ namespace tr1
return __detail::__ellint_3<__type>(__k, __nu, __phi); return __detail::__ellint_3<__type>(__k, __nu, __phi);
} }
// 5.2.1.15 Exponential integrals.
inline float inline float
expintf(float __x) expintf(float __x)
{ return __detail::__expint<float>(__x); } { return __detail::__expint<float>(__x); }
...@@ -331,6 +330,7 @@ namespace tr1 ...@@ -331,6 +330,7 @@ namespace tr1
expintl(long double __x) expintl(long double __x)
{ return __detail::__expint<long double>(__x); } { return __detail::__expint<long double>(__x); }
/// 5.2.1.15 Exponential integrals.
template<typename _Tp> template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type inline typename __gnu_cxx::__promote<_Tp>::__type
expint(_Tp __x) expint(_Tp __x)
...@@ -339,7 +339,6 @@ namespace tr1 ...@@ -339,7 +339,6 @@ namespace tr1
return __detail::__expint<__type>(__x); return __detail::__expint<__type>(__x);
} }
// 5.2.1.16 Hermite polynomials.
inline float inline float
hermitef(unsigned int __n, float __x) hermitef(unsigned int __n, float __x)
{ return __detail::__poly_hermite<float>(__n, __x); } { return __detail::__poly_hermite<float>(__n, __x); }
...@@ -348,6 +347,7 @@ namespace tr1 ...@@ -348,6 +347,7 @@ namespace tr1
hermitel(unsigned int __n, long double __x) hermitel(unsigned int __n, long double __x)
{ return __detail::__poly_hermite<long double>(__n, __x); } { return __detail::__poly_hermite<long double>(__n, __x); }
/// 5.2.1.16 Hermite polynomials.
template<typename _Tp> template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type inline typename __gnu_cxx::__promote<_Tp>::__type
hermite(unsigned int __n, _Tp __x) hermite(unsigned int __n, _Tp __x)
...@@ -356,7 +356,6 @@ namespace tr1 ...@@ -356,7 +356,6 @@ namespace tr1
return __detail::__poly_hermite<__type>(__n, __x); return __detail::__poly_hermite<__type>(__n, __x);
} }
// 5.2.1.17 Hypergeometric functions.
inline float inline float
hypergf(float __a, float __b, float __c, float __x) hypergf(float __a, float __b, float __c, float __x)
{ return __detail::__hyperg<float>(__a, __b, __c, __x); } { return __detail::__hyperg<float>(__a, __b, __c, __x); }
...@@ -365,6 +364,7 @@ namespace tr1 ...@@ -365,6 +364,7 @@ namespace tr1
hypergl(long double __a, long double __b, long double __c, long double __x) hypergl(long double __a, long double __b, long double __c, long double __x)
{ return __detail::__hyperg<long double>(__a, __b, __c, __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> template<typename _Tpa, typename _Tpb, typename _Tpc, typename _Tp>
inline typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp>::__type inline typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp>::__type
hyperg(_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x) hyperg(_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x)
...@@ -373,7 +373,6 @@ namespace tr1 ...@@ -373,7 +373,6 @@ namespace tr1
return __detail::__hyperg<__type>(__a, __b, __c, __x); return __detail::__hyperg<__type>(__a, __b, __c, __x);
} }
// 5.2.1.18 Laguerre polynomials.
inline float inline float
laguerref(unsigned int __n, float __x) laguerref(unsigned int __n, float __x)
{ return __detail::__laguerre<float>(__n, __x); } { return __detail::__laguerre<float>(__n, __x); }
...@@ -382,6 +381,7 @@ namespace tr1 ...@@ -382,6 +381,7 @@ namespace tr1
laguerrel(unsigned int __n, long double __x) laguerrel(unsigned int __n, long double __x)
{ return __detail::__laguerre<long double>(__n, __x); } { return __detail::__laguerre<long double>(__n, __x); }
/// 5.2.1.18 Laguerre polynomials.
template<typename _Tp> template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type inline typename __gnu_cxx::__promote<_Tp>::__type
laguerre(unsigned int __n, _Tp __x) laguerre(unsigned int __n, _Tp __x)
...@@ -390,7 +390,6 @@ namespace tr1 ...@@ -390,7 +390,6 @@ namespace tr1
return __detail::__laguerre<__type>(__n, __x); return __detail::__laguerre<__type>(__n, __x);
} }
// 5.2.1.19 Legendre polynomials.
inline float inline float
legendref(unsigned int __n, float __x) legendref(unsigned int __n, float __x)
{ return __detail::__poly_legendre_p<float>(__n, __x); } { return __detail::__poly_legendre_p<float>(__n, __x); }
...@@ -399,6 +398,7 @@ namespace tr1 ...@@ -399,6 +398,7 @@ namespace tr1
legendrel(unsigned int __n, long double __x) legendrel(unsigned int __n, long double __x)
{ return __detail::__poly_legendre_p<long double>(__n, __x); } { return __detail::__poly_legendre_p<long double>(__n, __x); }
/// 5.2.1.19 Legendre polynomials.
template<typename _Tp> template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type inline typename __gnu_cxx::__promote<_Tp>::__type
legendre(unsigned int __n, _Tp __x) legendre(unsigned int __n, _Tp __x)
...@@ -407,7 +407,6 @@ namespace tr1 ...@@ -407,7 +407,6 @@ namespace tr1
return __detail::__poly_legendre_p<__type>(__n, __x); return __detail::__poly_legendre_p<__type>(__n, __x);
} }
// 5.2.1.20 Riemann zeta function.
inline float inline float
riemann_zetaf(float __x) riemann_zetaf(float __x)
{ return __detail::__riemann_zeta<float>(__x); } { return __detail::__riemann_zeta<float>(__x); }
...@@ -416,6 +415,7 @@ namespace tr1 ...@@ -416,6 +415,7 @@ namespace tr1
riemann_zetal(long double __x) riemann_zetal(long double __x)
{ return __detail::__riemann_zeta<long double>(__x); } { return __detail::__riemann_zeta<long double>(__x); }
/// 5.2.1.20 Riemann zeta function.
template<typename _Tp> template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type inline typename __gnu_cxx::__promote<_Tp>::__type
riemann_zeta(_Tp __x) riemann_zeta(_Tp __x)
...@@ -424,7 +424,6 @@ namespace tr1 ...@@ -424,7 +424,6 @@ namespace tr1
return __detail::__riemann_zeta<__type>(__x); return __detail::__riemann_zeta<__type>(__x);
} }
// 5.2.1.21 Spherical Bessel functions.
inline float inline float
sph_besself(unsigned int __n, float __x) sph_besself(unsigned int __n, float __x)
{ return __detail::__sph_bessel<float>(__n, __x); } { return __detail::__sph_bessel<float>(__n, __x); }
...@@ -433,6 +432,7 @@ namespace tr1 ...@@ -433,6 +432,7 @@ namespace tr1
sph_bessell(unsigned int __n, long double __x) sph_bessell(unsigned int __n, long double __x)
{ return __detail::__sph_bessel<long double>(__n, __x); } { return __detail::__sph_bessel<long double>(__n, __x); }
/// 5.2.1.21 Spherical Bessel functions.
template<typename _Tp> template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type inline typename __gnu_cxx::__promote<_Tp>::__type
sph_bessel(unsigned int __n, _Tp __x) sph_bessel(unsigned int __n, _Tp __x)
...@@ -441,7 +441,6 @@ namespace tr1 ...@@ -441,7 +441,6 @@ namespace tr1
return __detail::__sph_bessel<__type>(__n, __x); return __detail::__sph_bessel<__type>(__n, __x);
} }
// 5.2.1.22 Spherical associated Legendre functions.
inline float inline float
sph_legendref(unsigned int __l, unsigned int __m, float __theta) sph_legendref(unsigned int __l, unsigned int __m, float __theta)
{ return __detail::__sph_legendre<float>(__l, __m, __theta); } { return __detail::__sph_legendre<float>(__l, __m, __theta); }
...@@ -450,6 +449,7 @@ namespace tr1 ...@@ -450,6 +449,7 @@ namespace tr1
sph_legendrel(unsigned int __l, unsigned int __m, long double __theta) sph_legendrel(unsigned int __l, unsigned int __m, long double __theta)
{ return __detail::__sph_legendre<long double>(__l, __m, __theta); } { return __detail::__sph_legendre<long double>(__l, __m, __theta); }
/// 5.2.1.22 Spherical associated Legendre functions.
template<typename _Tp> template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type inline typename __gnu_cxx::__promote<_Tp>::__type
sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta) sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta)
...@@ -458,7 +458,6 @@ namespace tr1 ...@@ -458,7 +458,6 @@ namespace tr1
return __detail::__sph_legendre<__type>(__l, __m, __theta); return __detail::__sph_legendre<__type>(__l, __m, __theta);
} }
// 5.2.1.23 Spherical Neumann functions.
inline float inline float
sph_neumannf(unsigned int __n, float __x) sph_neumannf(unsigned int __n, float __x)
{ return __detail::__sph_neumann<float>(__n, __x); } { return __detail::__sph_neumann<float>(__n, __x); }
...@@ -467,6 +466,7 @@ namespace tr1 ...@@ -467,6 +466,7 @@ namespace tr1
sph_neumannl(unsigned int __n, long double __x) sph_neumannl(unsigned int __n, long double __x)
{ return __detail::__sph_neumann<long double>(__n, __x); } { return __detail::__sph_neumann<long double>(__n, __x); }
/// 5.2.1.23 Spherical Neumann functions.
template<typename _Tp> template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type inline typename __gnu_cxx::__promote<_Tp>::__type
sph_neumann(unsigned int __n, _Tp __x) sph_neumann(unsigned int __n, _Tp __x)
...@@ -475,7 +475,7 @@ namespace tr1 ...@@ -475,7 +475,7 @@ namespace tr1
return __detail::__sph_neumann<__type>(__n, __x); return __detail::__sph_neumann<__type>(__n, __x);
} }
/* @} */ // group tr1_math_spec_func /* @} */ // tr1_math_spec_func
} }
} }
......
// Special functions -*- C++ -*- // Special functions -*- C++ -*-
// Copyright (C) 2006-2007 // Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc. // 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
...@@ -55,14 +55,7 @@ namespace tr1 ...@@ -55,14 +55,7 @@ namespace tr1
// [5.2] Special functions // [5.2] Special functions
/**
* @ingroup tr1_math_spec_func
* @{
*/
//
// Implementation-space details. // Implementation-space details.
//
namespace __detail namespace __detail
{ {
...@@ -753,9 +746,6 @@ namespace tr1 ...@@ -753,9 +746,6 @@ namespace tr1
} }
} // namespace std::tr1::__detail } // namespace std::tr1::__detail
/* @} */ // group tr1_math_spec_func
} }
} }
......
// Special functions -*- C++ -*- // Special functions -*- C++ -*-
// Copyright (C) 2006-2007 // Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc. // 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
...@@ -60,14 +60,7 @@ namespace tr1 ...@@ -60,14 +60,7 @@ namespace tr1
// [5.2] Special functions // [5.2] Special functions
/**
* @ingroup tr1_math_spec_func
* @{
*/
//
// Implementation-space details. // Implementation-space details.
//
namespace __detail namespace __detail
{ {
...@@ -530,9 +523,6 @@ namespace tr1 ...@@ -530,9 +523,6 @@ namespace tr1
} }
} // namespace std::tr1::__detail } // namespace std::tr1::__detail
/* @} */ // group tr1_math_spec_func
} }
} }
......
// Special functions -*- C++ -*- // Special functions -*- C++ -*-
// Copyright (C) 2006-2007 // Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc. // 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
...@@ -58,15 +58,7 @@ namespace std ...@@ -58,15 +58,7 @@ namespace std
{ {
namespace tr1 namespace tr1
{ {
/**
* @ingroup tr1_math_spec_func
* @{
*/
//
// Implementation-space details. // Implementation-space details.
//
namespace __detail namespace __detail
{ {
...@@ -477,9 +469,6 @@ namespace tr1 ...@@ -477,9 +469,6 @@ namespace tr1
} }
} // namespace std::tr1::__detail } // namespace std::tr1::__detail
/* @} */ // group tr1_math_spec_func
} }
} }
......
// Special functions -*- C++ -*- // Special functions -*- C++ -*-
// Copyright (C) 2006-2007 // Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc. // 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
...@@ -54,14 +54,7 @@ namespace tr1 ...@@ -54,14 +54,7 @@ namespace tr1
// [5.2] Special functions // [5.2] Special functions
/**
* @ingroup tr1_math_spec_func
* @{
*/
//
// Implementation-space details. // Implementation-space details.
//
namespace __detail namespace __detail
{ {
...@@ -780,9 +773,6 @@ namespace tr1 ...@@ -780,9 +773,6 @@ namespace tr1
} }
} // namespace std::tr1::__detail } // namespace std::tr1::__detail
/* @} */ // group tr1_math_spec_func
} }
} }
......
// Special functions -*- C++ -*- // Special functions -*- C++ -*-
// Copyright (C) 2006-2007 // Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc. // 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
...@@ -59,14 +59,7 @@ namespace tr1 ...@@ -59,14 +59,7 @@ namespace tr1
// [5.2] Special functions // [5.2] Special functions
/**
* @ingroup tr1_math_spec_func
* @{
*/
//
// Implementation-space details. // Implementation-space details.
//
namespace __detail namespace __detail
{ {
...@@ -161,7 +154,8 @@ namespace tr1 ...@@ -161,7 +154,8 @@ namespace tr1
_Tp __p_mm = _Tp(1); _Tp __p_mm = _Tp(1);
if (__m > 0) 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 __root = std::sqrt(_Tp(1) - __x) * std::sqrt(_Tp(1) + __x);
_Tp __fact = _Tp(1); _Tp __fact = _Tp(1);
for (unsigned int __i = 1; __i <= __m; ++__i) for (unsigned int __i = 1; __i <= __m; ++__i)
...@@ -310,9 +304,6 @@ namespace tr1 ...@@ -310,9 +304,6 @@ namespace tr1
} }
} // namespace std::tr1::__detail } // namespace std::tr1::__detail
/* @} */ // group tr1_math_spec_func
} }
} }
......
// Special functions -*- C++ -*- // Special functions -*- C++ -*-
// Copyright (C) 2006-2007 // Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc. // 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
...@@ -61,14 +61,7 @@ namespace tr1 ...@@ -61,14 +61,7 @@ namespace tr1
// [5.2] Special functions // [5.2] Special functions
/**
* @ingroup tr1_math_spec_func
* @{
*/
//
// Implementation-space details. // Implementation-space details.
//
namespace __detail namespace __detail
{ {
...@@ -442,9 +435,6 @@ namespace tr1 ...@@ -442,9 +435,6 @@ namespace tr1
} }
} // namespace std::tr1::__detail } // namespace std::tr1::__detail
/* @} */ // group tr1_math_spec_func
} }
} }
......
// Special functions -*- C++ -*- // Special functions -*- C++ -*-
// Copyright (C) 2006-2007 // Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc. // 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
...@@ -52,14 +52,7 @@ namespace tr1 ...@@ -52,14 +52,7 @@ namespace tr1
// [5.2] Special functions // [5.2] Special functions
/**
* @ingroup tr1_math_spec_func
* @{
*/
//
// Implementation-space details. // Implementation-space details.
//
namespace __detail namespace __detail
{ {
...@@ -130,9 +123,6 @@ namespace tr1 ...@@ -130,9 +123,6 @@ namespace tr1
} }
} // namespace std::tr1::__detail } // namespace std::tr1::__detail
/* @} */ // group tr1_math_spec_func
} }
} }
......
// Special functions -*- C++ -*- // Special functions -*- C++ -*-
// Copyright (C) 2006-2007 // Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc. // 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
...@@ -54,14 +54,7 @@ namespace tr1 ...@@ -54,14 +54,7 @@ namespace tr1
// [5.2] Special functions // [5.2] Special functions
/**
* @ingroup tr1_math_spec_func
* @{
*/
//
// Implementation-space details. // Implementation-space details.
//
namespace __detail namespace __detail
{ {
...@@ -335,9 +328,6 @@ namespace tr1 ...@@ -335,9 +328,6 @@ namespace tr1
} }
} // namespace std::tr1::__detail } // namespace std::tr1::__detail
/* @} */ // group tr1_math_spec_func
} }
} }
......
// Special functions -*- C++ -*- // Special functions -*- C++ -*-
// Copyright (C) 2006-2007 // Copyright (C) 2006, 2007, 2008
// Free Software Foundation, Inc. // 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
...@@ -57,14 +57,7 @@ namespace tr1 ...@@ -57,14 +57,7 @@ namespace tr1
// [5.2] Special functions // [5.2] Special functions
/**
* @ingroup tr1_math_spec_func
* @{
*/
//
// Implementation-space details. // Implementation-space details.
//
namespace __detail namespace __detail
{ {
...@@ -441,9 +434,6 @@ namespace tr1 ...@@ -441,9 +434,6 @@ namespace tr1
} }
} // namespace std::tr1::__detail } // namespace std::tr1::__detail
/* @} */ // group tr1_math_spec_func
} }
} }
......
...@@ -42,7 +42,6 @@ ...@@ -42,7 +42,6 @@
#ifndef _GLIBCXX_TR1_SPECIAL_FUNCTION_UTIL_H #ifndef _GLIBCXX_TR1_SPECIAL_FUNCTION_UTIL_H
#define _GLIBCXX_TR1_SPECIAL_FUNCTION_UTIL_H 1 #define _GLIBCXX_TR1_SPECIAL_FUNCTION_UTIL_H 1
// namespace std::tr1
namespace std namespace std
{ {
namespace tr1 namespace tr1
...@@ -51,21 +50,17 @@ namespace tr1 ...@@ -51,21 +50,17 @@ namespace tr1
namespace __detail namespace __detail
{ {
/// /// A class to encapsulate type dependent floating point
/// @brief A class to encapsulate type dependent floating point /// constants. Not everything will be able to be expressed as
/// constants. Not everything will be able to be expressed /// type logic.
/// as type logic. template<typename _Tp>
///
template <typename _Tp>
struct __floating_point_constant struct __floating_point_constant
{ {
static const _Tp __value; static const _Tp __value;
}; };
/// /// A structure for numeric constants.
/// @brief A structure for numeric constants.
///
template<typename _Tp> template<typename _Tp>
struct __numeric_constants struct __numeric_constants
{ {
...@@ -111,15 +106,13 @@ namespace tr1 ...@@ -111,15 +106,13 @@ namespace tr1
}; };
///
/// @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 #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) inline bool __isnan(const _Tp __x)
{ {
return std::isnan(__x); return std::isnan(__x);
...@@ -127,19 +120,19 @@ namespace tr1 ...@@ -127,19 +120,19 @@ namespace tr1
#else #else
template <typename _Tp> template<typename _Tp>
inline bool __isnan(const _Tp __x) inline bool __isnan(const _Tp __x)
{ {
return __builtin_isnan(__x); return __builtin_isnan(__x);
} }
template <> template<>
inline bool __isnan<float>(const float __x) inline bool __isnan<float>(const float __x)
{ {
return __builtin_isnanf(__x); return __builtin_isnanf(__x);
} }
template <> template<>
inline bool __isnan<long double>(const long double __x) inline bool __isnan<long double>(const long double __x)
{ {
return __builtin_isnanl(__x); return __builtin_isnanl(__x);
......
...@@ -246,7 +246,7 @@ namespace tr1 ...@@ -246,7 +246,7 @@ namespace tr1
template<typename _Tp> template<typename _Tp>
struct tuple_size; struct tuple_size;
/// @brief class tuple_size /// class tuple_size
template<typename... _Elements> template<typename... _Elements>
struct tuple_size<tuple<_Elements...> > struct tuple_size<tuple<_Elements...> >
{ {
......
...@@ -183,7 +183,7 @@ namespace tr1 ...@@ -183,7 +183,7 @@ namespace tr1
template<typename _From, typename _To, template<typename _From, typename _To,
bool = (is_void<_From>::value || is_void<_To>::value bool = (is_void<_From>::value || is_void<_To>::value
|| is_function<_To>::value || is_array<_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 || (is_floating_point<typename
remove_reference<_From>::type>::value remove_reference<_From>::type>::value
&& __is_int_or_cref<_To>::__value))> && __is_int_or_cref<_To>::__value))>
...@@ -206,7 +206,7 @@ namespace tr1 ...@@ -206,7 +206,7 @@ namespace tr1
__is_convertible_helper<_From, _To>::__value> __is_convertible_helper<_From, _To>::__value>
{ }; { };
/// @brief reference modifications [4.7.2]. // reference modifications [4.7.2].
template<typename _Tp> template<typename _Tp>
struct remove_reference struct remove_reference
{ typedef _Tp type; }; { typedef _Tp type; };
...@@ -230,7 +230,7 @@ namespace tr1 ...@@ -230,7 +230,7 @@ namespace tr1
: public __add_reference_helper<_Tp> : public __add_reference_helper<_Tp>
{ }; { };
/// @brief other transformations [4.8]. // other transformations [4.8].
template<std::size_t _Len, std::size_t _Align> template<std::size_t _Len, std::size_t _Align>
struct aligned_storage struct aligned_storage
{ {
......
...@@ -36,7 +36,7 @@ namespace std ...@@ -36,7 +36,7 @@ namespace std
{ {
_GLIBCXX_BEGIN_NAMESPACE_TR1 _GLIBCXX_BEGIN_NAMESPACE_TR1
/// @brief struct array. /// array.
/// NB: Requires complete type _Tp. /// NB: Requires complete type _Tp.
template<typename _Tp, std::size_t _Nm> template<typename _Tp, std::size_t _Nm>
struct array struct array
...@@ -216,8 +216,14 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -216,8 +216,14 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
{ std::swap_ranges(__one.begin(), __one.end(), __two.begin()); } { std::swap_ranges(__one.begin(), __one.end(), __two.begin()); }
// Tuple interface to class template array [6.2.2.5]. // 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> template<typename _Tp, std::size_t _Nm>
struct tuple_size<array<_Tp, _Nm> > struct tuple_size<array<_Tp, _Nm> >
......
...@@ -195,7 +195,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -195,7 +195,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
#endif #endif
/** /**
* @class shared_ptr <tr1/memory> * @class __shared_ptr
* *
* A smart pointer with reference-counted copy semantics. * A smart pointer with reference-counted copy semantics.
* The object pointed to is deleted when the last shared_ptr pointing to * The object pointed to is deleted when the last shared_ptr pointing to
...@@ -230,7 +230,8 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -230,7 +230,8 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
} }
// //
// 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) // __shared_ptr will release __p by calling __d(__p)
// //
...@@ -252,8 +253,9 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -252,8 +253,9 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
#ifdef _GLIBCXX_INCLUDE_AS_CXX0X #ifdef _GLIBCXX_INCLUDE_AS_CXX0X
// //
// Requirements: _Deleter's copy constructor and destructor must not throw // Requirements: _Deleter's copy constructor and destructor must
// _Alloc's copy constructor and destructor must not throw. // not throw _Alloc's copy constructor and destructor must not
// throw.
// //
// __shared_ptr will release __p by calling __d(__p) // __shared_ptr will release __p by calling __d(__p)
// //
...@@ -811,7 +813,8 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -811,7 +813,8 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
}; };
// The actual TR1 shared_ptr, with forwarding constructors and /// shared_ptr
// The actual shared_ptr, with forwarding constructors and
// assignment operators. // assignment operators.
template<typename _Tp> template<typename _Tp>
class shared_ptr class shared_ptr
...@@ -965,7 +968,8 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -965,7 +968,8 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
} }
// The actual TR1 weak_ptr, with forwarding constructors and /// weak_ptr
// The actual weak_ptr, with forwarding constructors and
// assignment operators. // assignment operators.
template<typename _Tp> template<typename _Tp>
class weak_ptr class weak_ptr
...@@ -1021,7 +1025,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -1021,7 +1025,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
} }
}; };
/// enable_shared_from_this
template<typename _Tp> template<typename _Tp>
class enable_shared_from_this class enable_shared_from_this
{ {
......
...@@ -298,8 +298,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -298,8 +298,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
#if _GLIBCXX_USE_C99_MATH #if _GLIBCXX_USE_C99_MATH
#if !_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC #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::signbit;
using std::fpclassify; using std::fpclassify;
...@@ -320,8 +319,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -320,8 +319,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
#if _GLIBCXX_USE_C99_MATH_TR1 #if _GLIBCXX_USE_C99_MATH_TR1
/// @brief Additional overloads [8.16.4]. /// Additional overloads [8.16.4].
//
using std::acos; using std::acos;
inline float inline float
......
...@@ -51,7 +51,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -51,7 +51,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
template<typename _Tp> std::complex<_Tp> fabs(const std::complex<_Tp>&); template<typename _Tp> std::complex<_Tp> fabs(const std::complex<_Tp>&);
#endif #endif
/// @brief acos(__z) [8.1.2]. /// acos(__z) [8.1.2].
// Effects: Behaves the same as C99 function cacos, defined // Effects: Behaves the same as C99 function cacos, defined
// in subclause 7.3.5.1. // in subclause 7.3.5.1.
template<typename _Tp> template<typename _Tp>
...@@ -87,7 +87,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -87,7 +87,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
{ return __complex_acos(__z); } { return __complex_acos(__z); }
#endif #endif
/// @brief asin(__z) [8.1.3]. /// asin(__z) [8.1.3].
// Effects: Behaves the same as C99 function casin, defined // Effects: Behaves the same as C99 function casin, defined
// in subclause 7.3.5.2. // in subclause 7.3.5.2.
template<typename _Tp> template<typename _Tp>
...@@ -123,7 +123,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -123,7 +123,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
{ return __complex_asin(__z); } { return __complex_asin(__z); }
#endif #endif
/// @brief atan(__z) [8.1.4]. /// atan(__z) [8.1.4].
// Effects: Behaves the same as C99 function catan, defined // Effects: Behaves the same as C99 function catan, defined
// in subclause 7.3.5.3. // in subclause 7.3.5.3.
template<typename _Tp> template<typename _Tp>
...@@ -167,7 +167,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -167,7 +167,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
{ return __complex_atan(__z); } { return __complex_atan(__z); }
#endif #endif
/// @brief acosh(__z) [8.1.5]. /// acosh(__z) [8.1.5].
// Effects: Behaves the same as C99 function cacosh, defined // Effects: Behaves the same as C99 function cacosh, defined
// in subclause 7.3.6.1. // in subclause 7.3.6.1.
template<typename _Tp> template<typename _Tp>
...@@ -206,7 +206,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -206,7 +206,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
{ return __complex_acosh(__z); } { return __complex_acosh(__z); }
#endif #endif
/// @brief asinh(__z) [8.1.6]. /// asinh(__z) [8.1.6].
// Effects: Behaves the same as C99 function casin, defined // Effects: Behaves the same as C99 function casin, defined
// in subclause 7.3.6.2. // in subclause 7.3.6.2.
template<typename _Tp> template<typename _Tp>
...@@ -245,7 +245,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -245,7 +245,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
{ return __complex_asinh(__z); } { return __complex_asinh(__z); }
#endif #endif
/// @brief atanh(__z) [8.1.7]. /// atanh(__z) [8.1.7].
// Effects: Behaves the same as C99 function catanh, defined // Effects: Behaves the same as C99 function catanh, defined
// in subclause 7.3.6.3. // in subclause 7.3.6.3.
template<typename _Tp> template<typename _Tp>
...@@ -289,7 +289,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -289,7 +289,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
{ return __complex_atanh(__z); } { return __complex_atanh(__z); }
#endif #endif
/// @brief fabs(__z) [8.1.8]. /// fabs(__z) [8.1.8].
// Effects: Behaves the same as C99 function cabs, defined // Effects: Behaves the same as C99 function cabs, defined
// in subclause 7.3.8.1. // in subclause 7.3.8.1.
template<typename _Tp> template<typename _Tp>
...@@ -306,8 +306,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -306,8 +306,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
|| (defined(_GLIBCXX_INCLUDE_AS_TR1) \ || (defined(_GLIBCXX_INCLUDE_AS_TR1) \
&& !defined(__GXX_EXPERIMENTAL_CXX0X__))) && !defined(__GXX_EXPERIMENTAL_CXX0X__)))
/// @brief Additional overloads [8.1.9]. /// Additional overloads [8.1.9].
//
template<typename _Tp> template<typename _Tp>
inline typename __gnu_cxx::__promote<_Tp>::__type inline typename __gnu_cxx::__promote<_Tp>::__type
arg(_Tp __x) arg(_Tp __x)
......
...@@ -426,6 +426,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -426,6 +426,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
: binary_function<const volatile _T1*, _T2, _Res> : binary_function<const volatile _T1*, _T2, _Res>
{ }; { };
/// reference_wrapper
template<typename _Tp> template<typename _Tp>
class reference_wrapper class reference_wrapper
: public _Reference_wrapper_base<typename remove_cv<_Tp>::type> : public _Reference_wrapper_base<typename remove_cv<_Tp>::type>
...@@ -1336,6 +1337,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -1336,6 +1337,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
template<typename _Result, typename _Signature> template<typename _Result, typename _Signature>
const bool is_bind_expression<_Bind_result<_Result, _Signature> >::value; const bool is_bind_expression<_Bind_result<_Result, _Signature> >::value;
/// bind
template<typename _Functor, typename... _ArgTypes> template<typename _Functor, typename... _ArgTypes>
inline inline
_Bind<typename _Maybe_wrap_member_pointer<_Functor>::type(_ArgTypes...)> _Bind<typename _Maybe_wrap_member_pointer<_Functor>::type(_ArgTypes...)>
...@@ -1751,6 +1753,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -1751,6 +1753,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
} }
}; };
/// class function
template<typename _Res, typename... _ArgTypes> template<typename _Res, typename... _ArgTypes>
class function<_Res(_ArgTypes...)> class function<_Res(_ArgTypes...)>
: public _Maybe_unary_or_binary_function<_Res, _ArgTypes...>, : public _Maybe_unary_or_binary_function<_Res, _ArgTypes...>,
......
// TR1 functional -*- C++ -*- // 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 // 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
...@@ -36,7 +36,7 @@ namespace std ...@@ -36,7 +36,7 @@ namespace std
{ {
_GLIBCXX_BEGIN_NAMESPACE_TR1 _GLIBCXX_BEGIN_NAMESPACE_TR1
// Class template hash. /// Class template hash.
// Declaration of default hash functor std::tr1::hash. The types for // 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. // which std::tr1::hash<T> is well-defined is in clause 6.3.3. of the PDTR.
template<typename _Tp> template<typename _Tp>
...@@ -46,7 +46,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -46,7 +46,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
operator()(_Tp __val) const; operator()(_Tp __val) const;
}; };
// Partial specializations for pointer types. /// Partial specializations for pointer types.
template<typename _Tp> template<typename _Tp>
struct hash<_Tp*> : public std::unary_function<_Tp*, size_t> struct hash<_Tp*> : public std::unary_function<_Tp*, size_t>
{ {
...@@ -55,7 +55,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -55,7 +55,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
{ return reinterpret_cast<size_t>(__p); } { return reinterpret_cast<size_t>(__p); }
}; };
// Explicit specializations for integer types. /// Explicit specializations for integer types.
#define _TR1_hashtable_define_trivial_hash(_Tp) \ #define _TR1_hashtable_define_trivial_hash(_Tp) \
template<> \ template<> \
inline size_t \ inline size_t \
...@@ -81,7 +81,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -81,7 +81,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
// Fowler / Noll / Vo (FNV) Hash (type FNV-1a) // Fowler / Noll / Vo (FNV) Hash (type FNV-1a)
// (Used by the next specializations of std::tr1::hash.) // (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)> template<size_t = sizeof(size_t)>
struct _Fnv_hash struct _Fnv_hash
{ {
...@@ -128,7 +128,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -128,7 +128,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
} }
}; };
// Explicit specializations for floating point types. /// Explicit specializations for float.
template<> template<>
inline size_t inline size_t
hash<float>::operator()(float __val) const hash<float>::operator()(float __val) const
...@@ -142,6 +142,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -142,6 +142,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
return __result; return __result;
}; };
/// Explicit specializations for double.
template<> template<>
inline size_t inline size_t
hash<double>::operator()(double __val) const hash<double>::operator()(double __val) const
...@@ -155,11 +156,12 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -155,11 +156,12 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
return __result; return __result;
}; };
/// Explicit specializations for long double.
template<> template<>
size_t size_t
hash<long double>::operator()(long double __val) const; 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<> template<>
size_t size_t
hash<string>::operator()(string) const; hash<string>::operator()(string) const;
......
...@@ -149,8 +149,8 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -149,8 +149,8 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
} // namespace __detail } // namespace __detail
/** /**
* Produces random numbers on a given distribution function using a non-uniform * Produces random numbers on a given distribution function using a
* random number generation engine. * non-uniform random number generation engine.
* *
* @todo the engine_value_type needs to be studied more carefully. * @todo the engine_value_type needs to be studied more carefully.
*/ */
......
...@@ -241,7 +241,7 @@ namespace regex_constants ...@@ -241,7 +241,7 @@ namespace regex_constants
static const match_flag_type format_first_only = 1 << _S_first_only; 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 enum error_type
{ {
_S_error_collate, _S_error_collate,
...@@ -308,7 +308,7 @@ namespace regex_constants ...@@ -308,7 +308,7 @@ namespace regex_constants
// [7.8] Class regex_error // [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. * regular expression library.
*/ */
class regex_error class regex_error
......
...@@ -67,7 +67,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -67,7 +67,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
_DEFINE_SPEC_##_Order##_HELPER(_Trait<_Type volatile>, _Value) \ _DEFINE_SPEC_##_Order##_HELPER(_Trait<_Type volatile>, _Value) \
_DEFINE_SPEC_##_Order##_HELPER(_Trait<_Type const 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> template<typename _Tp, _Tp __v>
struct integral_constant struct integral_constant
{ {
...@@ -75,18 +75,23 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -75,18 +75,23 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
typedef _Tp value_type; typedef _Tp value_type;
typedef integral_constant<_Tp, __v> type; typedef integral_constant<_Tp, __v> type;
}; };
/// typedef for true_type
typedef integral_constant<bool, true> true_type; typedef integral_constant<bool, true> true_type;
/// typedef for true_type
typedef integral_constant<bool, false> false_type; typedef integral_constant<bool, false> false_type;
template<typename _Tp, _Tp __v> template<typename _Tp, _Tp __v>
const _Tp integral_constant<_Tp, __v>::value; const _Tp integral_constant<_Tp, __v>::value;
/// @brief primary type categories [4.5.1]. /// primary type categories [4.5.1].
template<typename> template<typename>
struct is_void struct is_void
: public false_type { }; : public false_type { };
_DEFINE_SPEC(0, is_void, void, true) _DEFINE_SPEC(0, is_void, void, true)
/// is_integral
template<typename> template<typename>
struct is_integral struct is_integral
: public false_type { }; : public false_type { };
...@@ -106,6 +111,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -106,6 +111,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
_DEFINE_SPEC(0, is_integral, long long, true) _DEFINE_SPEC(0, is_integral, long long, true)
_DEFINE_SPEC(0, is_integral, unsigned long long, true) _DEFINE_SPEC(0, is_integral, unsigned long long, true)
/// is_floating_point
template<typename> template<typename>
struct is_floating_point struct is_floating_point
: public false_type { }; : public false_type { };
...@@ -113,6 +119,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -113,6 +119,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
_DEFINE_SPEC(0, is_floating_point, double, true) _DEFINE_SPEC(0, is_floating_point, double, true)
_DEFINE_SPEC(0, is_floating_point, long double, true) _DEFINE_SPEC(0, is_floating_point, long double, true)
/// is_array
template<typename> template<typename>
struct is_array struct is_array
: public false_type { }; : public false_type { };
...@@ -125,39 +132,47 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -125,39 +132,47 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
struct is_array<_Tp[]> struct is_array<_Tp[]>
: public true_type { }; : public true_type { };
/// is_pointer
template<typename> template<typename>
struct is_pointer struct is_pointer
: public false_type { }; : public false_type { };
_DEFINE_SPEC(1, is_pointer, _Tp*, true) _DEFINE_SPEC(1, is_pointer, _Tp*, true)
/// is_reference
template<typename _Tp> template<typename _Tp>
struct is_reference; struct is_reference;
/// is_function
template<typename _Tp> template<typename _Tp>
struct is_function; struct is_function;
/// is_member_object_pointer
template<typename> template<typename>
struct is_member_object_pointer struct is_member_object_pointer
: public false_type { }; : public false_type { };
_DEFINE_SPEC(2, is_member_object_pointer, _Tp _Cp::*, _DEFINE_SPEC(2, is_member_object_pointer, _Tp _Cp::*,
!is_function<_Tp>::value) !is_function<_Tp>::value)
/// is_member_function_pointer
template<typename> template<typename>
struct is_member_function_pointer struct is_member_function_pointer
: public false_type { }; : public false_type { };
_DEFINE_SPEC(2, is_member_function_pointer, _Tp _Cp::*, _DEFINE_SPEC(2, is_member_function_pointer, _Tp _Cp::*,
is_function<_Tp>::value) is_function<_Tp>::value)
/// is_enum
template<typename _Tp> template<typename _Tp>
struct is_enum struct is_enum
: public integral_constant<bool, __is_enum(_Tp)> : public integral_constant<bool, __is_enum(_Tp)>
{ }; { };
/// is_union
template<typename _Tp> template<typename _Tp>
struct is_union struct is_union
: public integral_constant<bool, __is_union(_Tp)> : public integral_constant<bool, __is_union(_Tp)>
{ }; { };
/// is_class
template<typename _Tp> template<typename _Tp>
struct is_class struct is_class
: public integral_constant<bool, __is_class(_Tp)> : public integral_constant<bool, __is_class(_Tp)>
...@@ -177,9 +192,11 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -177,9 +192,11 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
static const bool __value = sizeof(__test<_Tp>(0)) == 1; static const bool __value = sizeof(__test<_Tp>(0)) == 1;
}; };
/// is_abstract
template<typename _Tp> template<typename _Tp>
struct is_abstract; struct is_abstract;
/// is_function
template<typename _Tp> template<typename _Tp>
struct is_function struct is_function
: public integral_constant<bool, !(__in_array<_Tp>::__value : public integral_constant<bool, !(__in_array<_Tp>::__value
...@@ -188,19 +205,21 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -188,19 +205,21 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
|| is_void<_Tp>::value)> || is_void<_Tp>::value)>
{ }; { };
/// @brief composite type traits [4.5.2]. /// composite type traits [4.5.2].
template<typename _Tp> template<typename _Tp>
struct is_arithmetic struct is_arithmetic
: public integral_constant<bool, (is_integral<_Tp>::value : public integral_constant<bool, (is_integral<_Tp>::value
|| is_floating_point<_Tp>::value)> || is_floating_point<_Tp>::value)>
{ }; { };
/// is_fundamental
template<typename _Tp> template<typename _Tp>
struct is_fundamental struct is_fundamental
: public integral_constant<bool, (is_arithmetic<_Tp>::value : public integral_constant<bool, (is_arithmetic<_Tp>::value
|| is_void<_Tp>::value)> || is_void<_Tp>::value)>
{ }; { };
/// is_object
template<typename _Tp> template<typename _Tp>
struct is_object struct is_object
: public integral_constant<bool, !(is_function<_Tp>::value : public integral_constant<bool, !(is_function<_Tp>::value
...@@ -208,9 +227,11 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -208,9 +227,11 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
|| is_void<_Tp>::value)> || is_void<_Tp>::value)>
{ }; { };
/// is_member_pointer
template<typename _Tp> template<typename _Tp>
struct is_member_pointer; struct is_member_pointer;
/// is_scalal
template<typename _Tp> template<typename _Tp>
struct is_scalar struct is_scalar
: public integral_constant<bool, (is_arithmetic<_Tp>::value : public integral_constant<bool, (is_arithmetic<_Tp>::value
...@@ -219,10 +240,12 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -219,10 +240,12 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
|| is_member_pointer<_Tp>::value)> || is_member_pointer<_Tp>::value)>
{ }; { };
/// is_compound
template<typename _Tp> template<typename _Tp>
struct is_compound struct is_compound
: public integral_constant<bool, !is_fundamental<_Tp>::value> { }; : public integral_constant<bool, !is_fundamental<_Tp>::value> { };
/// is_member_pointer
template<typename _Tp> template<typename _Tp>
struct is_member_pointer struct is_member_pointer
: public integral_constant<bool, : public integral_constant<bool,
...@@ -230,15 +253,17 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -230,15 +253,17 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
|| is_member_function_pointer<_Tp>::value)> || is_member_function_pointer<_Tp>::value)>
{ }; { };
/// @brief type properties [4.5.3]. /// type properties [4.5.3].
template<typename> template<typename>
struct is_const struct is_const
: public false_type { }; : public false_type { };
/// is_const
template<typename _Tp> template<typename _Tp>
struct is_const<_Tp const> struct is_const<_Tp const>
: public true_type { }; : public true_type { };
/// is_volatile
template<typename> template<typename>
struct is_volatile struct is_volatile
: public false_type { }; : public false_type { };
...@@ -247,30 +272,36 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -247,30 +272,36 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
struct is_volatile<_Tp volatile> struct is_volatile<_Tp volatile>
: public true_type { }; : public true_type { };
/// is_empty
template<typename _Tp> template<typename _Tp>
struct is_empty struct is_empty
: public integral_constant<bool, __is_empty(_Tp)> : public integral_constant<bool, __is_empty(_Tp)>
{ }; { };
/// is_polymorphic
template<typename _Tp> template<typename _Tp>
struct is_polymorphic struct is_polymorphic
: public integral_constant<bool, __is_polymorphic(_Tp)> : public integral_constant<bool, __is_polymorphic(_Tp)>
{ }; { };
/// is_abstract
template<typename _Tp> template<typename _Tp>
struct is_abstract struct is_abstract
: public integral_constant<bool, __is_abstract(_Tp)> : public integral_constant<bool, __is_abstract(_Tp)>
{ }; { };
/// has_virtual_destructor
template<typename _Tp> template<typename _Tp>
struct has_virtual_destructor struct has_virtual_destructor
: public integral_constant<bool, __has_virtual_destructor(_Tp)> : public integral_constant<bool, __has_virtual_destructor(_Tp)>
{ }; { };
/// alignment_of
template<typename _Tp> template<typename _Tp>
struct alignment_of struct alignment_of
: public integral_constant<std::size_t, __alignof__(_Tp)> { }; : public integral_constant<std::size_t, __alignof__(_Tp)> { };
/// rank
template<typename> template<typename>
struct rank struct rank
: public integral_constant<std::size_t, 0> { }; : public integral_constant<std::size_t, 0> { };
...@@ -283,6 +314,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -283,6 +314,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
struct rank<_Tp[]> struct rank<_Tp[]>
: public integral_constant<std::size_t, 1 + rank<_Tp>::value> { }; : public integral_constant<std::size_t, 1 + rank<_Tp>::value> { };
/// extent
template<typename, unsigned _Uint = 0> template<typename, unsigned _Uint = 0>
struct extent struct extent
: public integral_constant<std::size_t, 0> { }; : public integral_constant<std::size_t, 0> { };
...@@ -301,7 +333,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -301,7 +333,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
_Uint - 1>::value> _Uint - 1>::value>
{ }; { };
/// @brief relationships between types [4.6]. /// relationships between types [4.6].
template<typename, typename> template<typename, typename>
struct is_same struct is_same
: public false_type { }; : public false_type { };
...@@ -310,7 +342,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -310,7 +342,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
struct is_same<_Tp, _Tp> struct is_same<_Tp, _Tp>
: public true_type { }; : public true_type { };
/// @brief const-volatile modifications [4.7.1]. /// const-volatile modifications [4.7.1].
template<typename _Tp> template<typename _Tp>
struct remove_const struct remove_const
{ typedef _Tp type; }; { typedef _Tp type; };
...@@ -319,6 +351,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -319,6 +351,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
struct remove_const<_Tp const> struct remove_const<_Tp const>
{ typedef _Tp type; }; { typedef _Tp type; };
/// remove_volatile
template<typename _Tp> template<typename _Tp>
struct remove_volatile struct remove_volatile
{ typedef _Tp type; }; { typedef _Tp type; };
...@@ -327,6 +360,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -327,6 +360,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
struct remove_volatile<_Tp volatile> struct remove_volatile<_Tp volatile>
{ typedef _Tp type; }; { typedef _Tp type; };
/// remove_cv
template<typename _Tp> template<typename _Tp>
struct remove_cv struct remove_cv
{ {
...@@ -334,14 +368,17 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -334,14 +368,17 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
remove_const<typename remove_volatile<_Tp>::type>::type type; remove_const<typename remove_volatile<_Tp>::type>::type type;
}; };
/// add_const
template<typename _Tp> template<typename _Tp>
struct add_const struct add_const
{ typedef _Tp const type; }; { typedef _Tp const type; };
/// add_volatile
template<typename _Tp> template<typename _Tp>
struct add_volatile struct add_volatile
{ typedef _Tp volatile type; }; { typedef _Tp volatile type; };
/// add_cv
template<typename _Tp> template<typename _Tp>
struct add_cv struct add_cv
{ {
...@@ -349,7 +386,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -349,7 +386,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
add_const<typename add_volatile<_Tp>::type>::type type; add_const<typename add_volatile<_Tp>::type>::type type;
}; };
/// @brief array modifications [4.7.3]. /// array modifications [4.7.3].
template<typename _Tp> template<typename _Tp>
struct remove_extent struct remove_extent
{ typedef _Tp type; }; { typedef _Tp type; };
...@@ -362,6 +399,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -362,6 +399,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
struct remove_extent<_Tp[]> struct remove_extent<_Tp[]>
{ typedef _Tp type; }; { typedef _Tp type; };
/// remove_all_extents
template<typename _Tp> template<typename _Tp>
struct remove_all_extents struct remove_all_extents
{ typedef _Tp type; }; { typedef _Tp type; };
...@@ -374,19 +412,22 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -374,19 +412,22 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
struct remove_all_extents<_Tp[]> struct remove_all_extents<_Tp[]>
{ typedef typename remove_all_extents<_Tp>::type type; }; { typedef typename remove_all_extents<_Tp>::type type; };
/// @brief pointer modifications [4.7.4]. /// pointer modifications [4.7.4].
#undef _DEFINE_SPEC_BODY #undef _DEFINE_SPEC_BODY
#define _DEFINE_SPEC_BODY(_Value) \ #define _DEFINE_SPEC_BODY(_Value) \
{ typedef _Tp type; }; { typedef _Tp type; };
/// remove_pointer
template<typename _Tp> template<typename _Tp>
struct remove_pointer struct remove_pointer
{ typedef _Tp type; }; { typedef _Tp type; };
_DEFINE_SPEC(1, remove_pointer, _Tp*, false) _DEFINE_SPEC(1, remove_pointer, _Tp*, false)
/// remove_reference
template<typename _Tp> template<typename _Tp>
struct remove_reference; struct remove_reference;
/// add_pointer
template<typename _Tp> template<typename _Tp>
struct add_pointer struct add_pointer
{ typedef typename remove_reference<_Tp>::type* type; }; { typedef typename remove_reference<_Tp>::type* type; };
......
...@@ -168,6 +168,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -168,6 +168,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
{ __x.swap(__y); } { __x.swap(__y); }
/// class unordered_map
template<class _Key, class _Tp, template<class _Key, class _Tp,
class _Hash = hash<_Key>, class _Hash = hash<_Key>,
class _Pred = std::equal_to<_Key>, class _Pred = std::equal_to<_Key>,
...@@ -215,6 +216,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -215,6 +216,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
#endif #endif
}; };
/// class unordered_multimap
template<class _Key, class _Tp, template<class _Key, class _Tp,
class _Hash = hash<_Key>, class _Hash = hash<_Key>,
class _Pred = std::equal_to<_Key>, class _Pred = std::equal_to<_Key>,
......
...@@ -150,10 +150,8 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -150,10 +150,8 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
template<class _Value, class _Hash, class _Pred, class _Alloc, template<class _Value, class _Hash, class _Pred, class _Alloc,
bool __cache_hash_code> bool __cache_hash_code>
inline void inline void
swap (__unordered_set<_Value, _Hash, _Pred, swap(__unordered_set<_Value, _Hash, _Pred, _Alloc, __cache_hash_code>& __x,
_Alloc, __cache_hash_code>& __x, __unordered_set<_Value, _Hash, _Pred, _Alloc, __cache_hash_code>& __y)
__unordered_set<_Value, _Hash, _Pred,
_Alloc, __cache_hash_code>& __y)
{ __x.swap(__y); } { __x.swap(__y); }
template<class _Value, class _Hash, class _Pred, class _Alloc, template<class _Value, class _Hash, class _Pred, class _Alloc,
...@@ -166,6 +164,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -166,6 +164,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
{ __x.swap(__y); } { __x.swap(__y); }
/// class unordered_set
template<class _Value, template<class _Value,
class _Hash = hash<_Value>, class _Hash = hash<_Value>,
class _Pred = std::equal_to<_Value>, class _Pred = std::equal_to<_Value>,
...@@ -213,6 +212,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -213,6 +212,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
#endif #endif
}; };
/// class unordered_multiset
template<class _Value, template<class _Value,
class _Hash = hash<_Value>, class _Hash = hash<_Value>,
class _Pred = std::equal_to<_Value>, class _Pred = std::equal_to<_Value>,
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
# We can check now that the version of doxygen is >= this variable. # We can check now that the version of doxygen is >= this variable.
DOXYVER=1.5.4 DOXYVER=1.5.1
find_doxygen() { find_doxygen() {
local -r v_required=`echo $DOXYVER | \ local -r v_required=`echo $DOXYVER | \
...@@ -156,7 +156,6 @@ fi ...@@ -156,7 +156,6 @@ fi
-e "s=@srcdir@=${srcdir}=g" \ -e "s=@srcdir@=${srcdir}=g" \
-e "s=@builddir@=${builddir}=g" \ -e "s=@builddir@=${builddir}=g" \
-e "s=@host_alias@=${host_alias}=g" \ -e "s=@host_alias@=${host_alias}=g" \
-e "s=@html_output_dir@=html=" \
-e "s=@enabled_sections@=${enabled_sections}=" \ -e "s=@enabled_sections@=${enabled_sections}=" \
-e "s=@do_html@=${do_html}=" \ -e "s=@do_html@=${do_html}=" \
-e "s=@do_man@=${do_man}=" \ -e "s=@do_man@=${do_man}=" \
......
...@@ -50,7 +50,7 @@ int main() ...@@ -50,7 +50,7 @@ int main()
return 0; return 0;
} }
// { dg-error "is private" "" { target *-*-* } 75 } // { dg-error "is private" "" { target *-*-* } 76 }
// { dg-error "within this context" "" { target *-*-* } 29 } // { dg-error "within this context" "" { target *-*-* } 29 }
// { dg-error "first required here" "" { target *-*-* } 48 } // { dg-error "first required here" "" { target *-*-* } 48 }
// { dg-excess-errors "copy constructor" } // { dg-excess-errors "copy constructor" }
...@@ -49,8 +49,8 @@ void test01() ...@@ -49,8 +49,8 @@ void test01()
// { dg-error "instantiated from here" "" { target *-*-* } 41 } // { dg-error "instantiated from here" "" { target *-*-* } 41 }
// { dg-error "instantiated from here" "" { target *-*-* } 43 } // { dg-error "instantiated from here" "" { target *-*-* } 43 }
// { dg-error "invalid use of incomplete type" "" { target *-*-* } 511 } // { dg-error "invalid use of incomplete type" "" { target *-*-* } 549 }
// { dg-error "declaration of" "" { target *-*-* } 477 } // { dg-error "declaration of" "" { target *-*-* } 515 }
// { dg-excess-errors "At global scope" } // { dg-excess-errors "At global scope" }
// { dg-excess-errors "In instantiation of" } // { dg-excess-errors "In instantiation of" }
...@@ -49,8 +49,8 @@ void test01() ...@@ -49,8 +49,8 @@ void test01()
// { dg-error "instantiated from here" "" { target *-*-* } 41 } // { dg-error "instantiated from here" "" { target *-*-* } 41 }
// { dg-error "instantiated from here" "" { target *-*-* } 43 } // { dg-error "instantiated from here" "" { target *-*-* } 43 }
// { dg-error "invalid use of incomplete type" "" { target *-*-* } 436 } // { dg-error "invalid use of incomplete type" "" { target *-*-* } 474 }
// { dg-error "declaration of" "" { target *-*-* } 402 } // { dg-error "declaration of" "" { target *-*-* } 440 }
// { dg-excess-errors "At global scope" } // { dg-excess-errors "At global scope" }
// { dg-excess-errors "In instantiation of" } // { dg-excess-errors "In instantiation of" }
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