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">
......
...@@ -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
} }
} }
......
// 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