Commit 5b9daa7e by Benjamin Kosnik

user.cfg.in: Tweaks.

2009-02-20  Benjamin Kosnik  <bkoz@redhat.com>

	* doc/doxygen/user.cfg.in: Tweaks.
	* doc/doxygen/doxygroups.cc: Prefer markup that can be elsewhere,
	be elsewhere.

	* include/tr1_impl/unordered_map: Just use most specialized
	container module.
	* include/tr1_impl/unordered_set: Same.
	* include/tr1_impl/array: Same.
	* include/bits/stl_list.h: Same.
	* include/bits/stl_map.h: Same.
	* include/bits/stl_queue.h: Same.
	* include/bits/stl_set.h: Same.
	* include/bits/stl_stack.h: Same.
	* include/bits/forward_list.h: Same.
	* include/bits/basic_string.h: Same.
	* include/bits/stl_multimap.h: Same.
	* include/bits/stl_vector.h: Same.
	* include/bits/stl_deque.h: Same.
	* include/bits/stl_multiset.h: Same.
	* include/bits/stl_bvector.h: Same.

	* include/backward/binders.h: Change binder module to binders.

	* include/std/complex: Add complex_numers module.
	* include/tr1_impl/complex: Same.

	* include/std/valarray: Add numeric_arrays module.
	* include/bits/gslice_array.h: Same.
	* include/bits/gslice.h: Same.
	* include/bits/mask_array.h: Same.
	* include/bits/slice_array.h: Same.
	* include/bits/indirect_array.h: Same.

	* include/bits/allocator.h: Add allocators module.
	* include/ext/throw_allocator.h
	* include/ext/pool_allocator.h
	* include/ext/bitmap_allocator.h
	* include/ext/new_allocator.h
	* include/ext/malloc_allocator.h
	* include/ext/array_allocator.h
	* include/ext/mt_allocator.h
	* include/ext/debug_allocator.h
	* include/ext/extptr_allocator.h

	* include/tr1_impl/functional: Move namespace markup here.
	* include/tr1_impl/regex: Same.

	* include/tr1_impl/type_traits: Add metaprogramming module.
	* include/std/type_traits: Same.

	* include/std/memory: Add memory module.

	* include/std/ratio: Add ratio module.

	* include/std/chrono: Move namespace markup here, add time module.

	* include/std/thread: Move namespace markup here, add concurrency
	module.
	* include/std/mutex: Use concurrency module.
	* include/std/condition_variable: Same.


	* include/bits/ios_base.h: Refine io module.
	* include/bits/basic_ios.h: Same.
	* include/std/fstream: Same.
	* include/std/istream: Same.
	* include/std/ostream: Same.
	* include/std/sstream: Same.

	* include/ext/vstring.h: Correct parameter markup.

	* include/bits/shared_ptr.h: Add pointer_abstractions module.
	* include/bits/unique_ptr.h: Same.

	* include/bits/algorithmfwd.h: Add mutating_algorithms,
        non_mutating_algorithms, sorting_algorithms. Adjust nesting.
	* include/bits/stl_heap.h: Add markup for new groupings.
	* include/bits/stl_algobase.h: Same.
	* include/bits/stl_algo.h: Same.

	* include/c_compatibility/stdatomic.h: Add atomics module.
	* include/c_global/cstdatomic: Same.

	* libsupc++/exception: Add exceptions module.
	* libsupc++/typeinfo: Same.
	* libsupc++/new: Same.
	* libsupc++/exception_ptr.h: Same.
	* include/std/system_error: Same.
	* include/std/stdexcept: Same.

	* libsupc++/cxxabi.h: Move doxygroups.cc markup here.
	* libsupc++/cxxabi-forced.h: Same.

	* testsuite/27_io/ios_base/cons/assign_neg.cc: Fix up line numbers.
	* testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
	* testsuite/30_threads/condition_variable_any/cons/assign_neg.cc: Same.
	* testsuite/30_threads/condition_variable_any/cons/copy_neg.cc: Same.
	* testsuite/30_threads/mutex/cons/assign_neg.cc: Same.
	* testsuite/30_threads/mutex/cons/copy_neg.cc: Same.
	* testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Same.
	* testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Same.
	* testsuite/30_threads/thread/cons/assign_neg.cc: Same.
	* testsuite/30_threads/thread/cons/copy_neg.cc: Same.
	* testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Same.
	* testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Same.
	* testsuite/30_threads/condition_variable/cons/assign_neg.cc: Same.
	* testsuite/30_threads/condition_variable/cons/copy_neg.cc: Same.
	* testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc: Same.
	* testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc: Same.
	* testsuite/29_atomics/atomic/cons/assign_neg.cc: Same.
	* testsuite/29_atomics/atomic/cons/copy_neg.cc: Same.
	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Same.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Same.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Same.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Same.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Same.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Same.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_1_neg.cc: Same.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_2_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_1_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_2_neg.cc: Same.
	* testsuite/20_util/duration/cons/1_neg.cc: Same.
	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Same.
	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same.
	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same.
	* testsuite/20_util/unique_ptr/modifiers/reset_neg.cc: Same.
	* testsuite/20_util/unique_ptr/assign/assign.cc: Same.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same.
	* testsuite/20_util/ratio/cons/cons_overflow.cc: Same.
	* testsuite/20_util/ratio/operations/ops_overflow.cc: Same.

From-SVN: r144343
parent 791838fa
2009-02-20 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in: Tweaks.
* doc/doxygen/doxygroups.cc: Prefer markup that can be elsewhere,
be elsewhere.
* include/tr1_impl/unordered_map: Just use most specialized
container module.
* include/tr1_impl/unordered_set: Same.
* include/tr1_impl/array: Same.
* include/bits/stl_list.h: Same.
* include/bits/stl_map.h: Same.
* include/bits/stl_queue.h: Same.
* include/bits/stl_set.h: Same.
* include/bits/stl_stack.h: Same.
* include/bits/forward_list.h: Same.
* include/bits/basic_string.h: Same.
* include/bits/stl_multimap.h: Same.
* include/bits/stl_vector.h: Same.
* include/bits/stl_deque.h: Same.
* include/bits/stl_multiset.h: Same.
* include/bits/stl_bvector.h: Same.
* include/backward/binders.h: Change binder module to binders.
* include/std/complex: Add complex_numers module.
* include/tr1_impl/complex: Same.
* include/std/valarray: Add numeric_arrays module.
* include/bits/gslice_array.h: Same.
* include/bits/gslice.h: Same.
* include/bits/mask_array.h: Same.
* include/bits/slice_array.h: Same.
* include/bits/indirect_array.h: Same.
* include/bits/allocator.h: Add allocators module.
* include/ext/throw_allocator.h
* include/ext/pool_allocator.h
* include/ext/bitmap_allocator.h
* include/ext/new_allocator.h
* include/ext/malloc_allocator.h
* include/ext/array_allocator.h
* include/ext/mt_allocator.h
* include/ext/debug_allocator.h
* include/ext/extptr_allocator.h
* include/tr1_impl/functional: Move namespace markup here.
* include/tr1_impl/regex: Same.
* include/tr1_impl/type_traits: Add metaprogramming module.
* include/std/type_traits: Same.
* include/std/memory: Add memory module.
* include/std/ratio: Add ratio module.
* include/std/chrono: Move namespace markup here, add time module.
* include/std/thread: Move namespace markup here, add concurrency
module.
* include/std/mutex: Use concurrency module.
* include/std/condition_variable: Same.
* include/bits/ios_base.h: Refine io module.
* include/bits/basic_ios.h: Same.
* include/std/fstream: Same.
* include/std/istream: Same.
* include/std/ostream: Same.
* include/std/sstream: Same.
* include/ext/vstring.h: Correct parameter markup.
* include/bits/shared_ptr.h: Add pointer_abstractions module.
* include/bits/unique_ptr.h: Same.
* include/bits/algorithmfwd.h: Add mutating_algorithms,
non_mutating_algorithms, sorting_algorithms. Adjust nesting.
* include/bits/stl_heap.h: Add markup for new groupings.
* include/bits/stl_algobase.h: Same.
* include/bits/stl_algo.h: Same.
* include/c_compatibility/stdatomic.h: Add atomics module.
* include/c_global/cstdatomic: Same.
* libsupc++/exception: Add exceptions module.
* libsupc++/typeinfo: Same.
* libsupc++/new: Same.
* libsupc++/exception_ptr.h: Same.
* include/std/system_error: Same.
* include/std/stdexcept: Same.
* libsupc++/cxxabi.h: Move doxygroups.cc markup here.
* libsupc++/cxxabi-forced.h: Same.
* testsuite/27_io/ios_base/cons/assign_neg.cc: Fix up line numbers.
* testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
* testsuite/30_threads/condition_variable_any/cons/assign_neg.cc: Same.
* testsuite/30_threads/condition_variable_any/cons/copy_neg.cc: Same.
* testsuite/30_threads/mutex/cons/assign_neg.cc: Same.
* testsuite/30_threads/mutex/cons/copy_neg.cc: Same.
* testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Same.
* testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Same.
* testsuite/30_threads/thread/cons/assign_neg.cc: Same.
* testsuite/30_threads/thread/cons/copy_neg.cc: Same.
* testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Same.
* testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Same.
* testsuite/30_threads/condition_variable/cons/assign_neg.cc: Same.
* testsuite/30_threads/condition_variable/cons/copy_neg.cc: Same.
* testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc: Same.
* testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc: Same.
* testsuite/29_atomics/atomic/cons/assign_neg.cc: Same.
* testsuite/29_atomics/atomic/cons/copy_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/20_util/duration/cons/1_neg.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same.
* testsuite/20_util/unique_ptr/modifiers/reset_neg.cc: Same.
* testsuite/20_util/unique_ptr/assign/assign.cc: Same.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same.
* testsuite/20_util/ratio/cons/cons_overflow.cc: Same.
* testsuite/20_util/ratio/operations/ops_overflow.cc: Same.
2009-02-18 Benjamin Kosnik <bkoz@redhat.com> 2009-02-18 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/doxygroups.cc: Move algorithm groups into algorithmfwd.h. * doc/doxygen/doxygroups.cc: Move algorithm groups into algorithmfwd.h.
...@@ -324,17 +466,17 @@ ...@@ -324,17 +466,17 @@
2009-02-03 Johannes Singler <singler@ira.uka.de> 2009-02-03 Johannes Singler <singler@ira.uka.de>
* include/parallel/algorithmfwd.h: * include/parallel/algorithmfwd.h:
Add parallelism default for many declarations. Add parallelism default for many declarations.
* include/parallel/numericfwd.h: Likewise. * include/parallel/numericfwd.h: Likewise.
* include/parallel/iterator.h: Use iterator_traits as usual. * include/parallel/iterator.h: Use iterator_traits as usual.
* include/parallel/par_loop.h: * include/parallel/par_loop.h:
Include equally_split.h. Include equally_split.h.
(for_each_template_random_access_ed): (for_each_template_random_access_ed):
Avoid calling the Result default constructor. Avoid calling the Result default constructor.
* include/parallel/numeric: Replace * include/parallel/numeric: Replace
for_each_template_random_access by for_each_template_random_access by
for_each_template_random_access_ed in numeric functions. for_each_template_random_access_ed in numeric functions.
2009-02-02 Benjamin Kosnik <bkoz@redhat.com> 2009-02-02 Benjamin Kosnik <bkoz@redhat.com>
...@@ -450,7 +592,7 @@ ...@@ -450,7 +592,7 @@
* config/os/gnu-linux/ldbl-extra.ver: Tweak. * config/os/gnu-linux/ldbl-extra.ver: Tweak.
2009-01-20 Benjamin Kosnik <bkoz@redhat.com> 2009-01-20 Benjamin Kosnik <bkoz@redhat.com>
Rainer Emrich <r.emrich@de.tecosim.com> Rainer Emrich <r.emrich@de.tecosim.com>
PR libstdc++/38919 PR libstdc++/38919
* crossconfig.m4: Use GLIBCXX_CHECK_MATH_SUPPORT and * crossconfig.m4: Use GLIBCXX_CHECK_MATH_SUPPORT and
......
...@@ -28,18 +28,6 @@ ...@@ -28,18 +28,6 @@
/** @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::chrono
* @brief ISO C++ 0x entities sub namespace for time and date.
*/
/** @namespace std::placeholders
* @brief ISO C++ 0x entities sub namespace for functional.
*/
/** @namespace std::regex_constants
* @brief ISO C++ 0x entities sub namespace for regex.
*/
/** @namespace std::this_thread
* @brief ISO C++ 0x entities sub namespace for thread.
*/
/** @namespace __gnu_cxx /** @namespace __gnu_cxx
* @brief GNU extensions for public use. * @brief GNU extensions for public use.
*/ */
...@@ -52,71 +40,6 @@ ...@@ -52,71 +40,6 @@
* export. Used only when anonymous namespaces cannot be substituted. * export. Used only when anonymous namespaces cannot be substituted.
*/ */
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
/** @namespace abi
* @brief The cross-vendor C++ Application Binary Interface. A
* namespace alias to __cxxabiv1.
*
* A brief overview of an ABI is given in the libstdc++ FAQ, question
* 5.8 (you may have a copy of the FAQ locally, or you can view the online
* version at http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#5_8).
*
* GCC subscribes to a relatively-new cross-vendor ABI for C++, sometimes
* called the IA64 ABI because it happens to be the native ABI for that
* platform. It is summarized at http://www.codesourcery.com/cxx-abi/
* along with the current specification.
*
* For users of GCC greater than or equal to 3.x, entry points are
* available in <cxxabi.h>, which notes, <em>"It is not normally
* necessary for user programs to include this header, or use the
* entry points directly. However, this header is available should
* that be needed."</em>
*/
namespace abi {
/**
@brief New ABI-mandated entry point in the C++ runtime library for demangling.
@param mangled_name A NUL-terminated character string containing the name
to be demangled.
@param output_buffer A region of memory, allocated with malloc, of
@a *length bytes, into which the demangled name
is stored. If @a output_buffer is not long enough,
it is expanded using realloc. @a output_buffer may
instead be NULL; in that case, the demangled name is
placed in a region of memory allocated with malloc.
@param length If @a length is non-NULL, the length of the buffer containing
the demangled name is placed in @a *length.
@param status @a *status is set to one of the following values:
- 0: The demangling operation succeeded.
- -1: A memory allocation failiure occurred.
- -2: @a mangled_name is not a valid name under the C++ ABI
mangling rules.
- -3: One of the arguments is invalid.
@return A pointer to the start of the NUL-terminated demangled name, or NULL
if the demangling fails. The caller is responsible for deallocating
this memory using @c free.
The demangling is performed using the C++ ABI mangling rules, with
GNU extensions. For example, this function is used
in __gnu_cxx::__verbose_terminate_handler. See
http://gcc.gnu.org/onlinedocs/libstdc++/18_support/howto.html#5 for other
examples of use.
@note The same demangling functionality is available via libiberty
(@c <libiberty/demangle.h> and @c libiberty.a) in GCC 3.1 and later, but that
requires explicit installation (@c --enable-install-libiberty) and uses a
different API, although the ABI is unchanged.
*/
char* __cxa_demangle (const char* mangled_name, char* output_buffer,
size_t* length, int* status);
} // namespace abi
// // // // // // // // // // // // // // // // // // // // // // // //
/** /**
* @defgroup extensions Extensions * @defgroup extensions Extensions
...@@ -142,10 +65,6 @@ comments all over the place, so they may seem stilted. ...@@ -142,10 +65,6 @@ comments all over the place, so they may seem stilted.
<hr> <hr>
*/ */
// // // // // // // // // // // // // // // // // // // // // // // //
// This is standalone because, unlike the functor introduction, there is no
// single header file which serves as a base "all containers must include
// this header". We do some quoting of 14882 here.
/** @defgroup containers Containers /** @defgroup containers Containers
Containers are collections of objects. Containers are collections of objects.
...@@ -169,9 +88,9 @@ All containers must meet certain requirements, summarized in ...@@ -169,9 +88,9 @@ All containers must meet certain requirements, summarized in
<a href="tables.html">tables</a>. <a href="tables.html">tables</a>.
The standard containers are further refined into The standard containers are further refined into
@link Sequences Sequences@endlink and @link sequences Sequences@endlink and
@link Assoc_containers Associative Containers@endlink. @link associative_containers Associative Containers@endlink.
@link Unordered_assoc_containers Unordered Associative Containers@endlink. @link unordered_associative_containers Unordered Associative Containers@endlink.
*/ */
/** @defgroup sequences Sequences /** @defgroup sequences Sequences
...@@ -218,9 +137,22 @@ elements of the container. ...@@ -218,9 +137,22 @@ elements of the container.
All unordered associative containers must meet certain requirements, All unordered associative containers must meet certain requirements,
summarized in <a href="tables.html">tables</a>. */ summarized in <a href="tables.html">tables</a>. */
// // // // // // // // // // // // // // // // // // // // // // // // /**
/* * @defgroup groupname description of group * @defgroup diagnostics Diagnostics
placeholder text *
*/ * Components for error handling, reporting, and diagnostic operations.
*/
// // // // // // // // // // // // // // // // // // // // // // // // /**
* @defgroup concurrency Concurrency
*
* Components for concurrent operations, including threads, mutexes,
* and condition variables.
*/
/**
* @defgroup pointer_abstractions Pointer Abstractions
* @ingroup memory
*
* Components for memory allocation, deallocation, and management.
*/
...@@ -416,7 +416,7 @@ SORT_BRIEF_DOCS = YES ...@@ -416,7 +416,7 @@ SORT_BRIEF_DOCS = YES
# hierarchy of group names into alphabetical order. If set to NO (the default) # hierarchy of group names into alphabetical order. If set to NO (the default)
# the group names will appear in their defined order. # the group names will appear in their defined order.
SORT_GROUP_NAMES = NO SORT_GROUP_NAMES = YES
# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
# sorted by fully-qualified names, including namespaces. If set to # sorted by fully-qualified names, including namespaces. If set to
...@@ -539,7 +539,7 @@ WARN_IF_UNDOCUMENTED = NO ...@@ -539,7 +539,7 @@ WARN_IF_UNDOCUMENTED = NO
# parameters in a documented function, or documenting parameters that # parameters in a documented function, or documenting parameters that
# don't exist or using markup commands wrongly. # don't exist or using markup commands wrongly.
WARN_IF_DOC_ERROR = NO WARN_IF_DOC_ERROR = YES
# This WARN_NO_PARAMDOC option can be abled to get warnings for # This WARN_NO_PARAMDOC option can be abled to get warnings for
# functions that are documented, but have no documentation for their parameters # functions that are documented, but have no documentation for their parameters
...@@ -573,9 +573,11 @@ WARN_LOGFILE = ...@@ -573,9 +573,11 @@ WARN_LOGFILE =
# "myfile.cpp" or directories like "/usr/src/myproject". Separate the # "myfile.cpp" or directories like "/usr/src/myproject". Separate the
# files or directories with spaces. # files or directories with spaces.
INPUT = @srcdir@/libsupc++/cxxabi.h \ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \
@srcdir@/libsupc++/cxxabi.h \
@srcdir@/libsupc++/cxxabi-forced.h \ @srcdir@/libsupc++/cxxabi-forced.h \
@srcdir@/libsupc++/exception \ @srcdir@/libsupc++/exception \
@srcdir@/libsupc++/exception_ptr.h \
@srcdir@/libsupc++/initializer_list \ @srcdir@/libsupc++/initializer_list \
@srcdir@/libsupc++/new \ @srcdir@/libsupc++/new \
@srcdir@/libsupc++/typeinfo \ @srcdir@/libsupc++/typeinfo \
...@@ -713,18 +715,18 @@ INPUT = @srcdir@/libsupc++/cxxabi.h \ ...@@ -713,18 +715,18 @@ INPUT = @srcdir@/libsupc++/cxxabi.h \
include/tr1_impl/unordered_map \ include/tr1_impl/unordered_map \
include/tr1_impl/unordered_set \ include/tr1_impl/unordered_set \
include/tr1_impl/utility \ include/tr1_impl/utility \
include/tr1_impl \
include/tr1 \
include/ \ include/ \
include/@host_alias@/bits \ include/@host_alias@/bits \
include/backward \ include/backward \
include/bits \ include/bits \
include/bits/shared_ptr.h \
include/debug \ include/debug \
include/parallel \ include/parallel \
include/tr1 \
include/tr1_impl \
include/ext \ include/ext \
include/ext/pb_ds \ include/ext/pb_ds \
include/ext/pb_ds/detail \ include/ext/pb_ds/detail
@srcdir@/doc/doxygen/doxygroups.cc
# This tag can be used to specify the character encoding of the source files # This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
...@@ -1419,6 +1421,7 @@ PREDEFINED = __cplusplus \ ...@@ -1419,6 +1421,7 @@ PREDEFINED = __cplusplus \
__GTHREADS \ __GTHREADS \
_GLIBCXX_HAS_GTHREADS \ _GLIBCXX_HAS_GTHREADS \
__GXX_EXPERIMENTAL_CXX0X__ \ __GXX_EXPERIMENTAL_CXX0X__ \
_GLIBCXX_INCLUDE_AS_CXX0X \
"_GLIBCXX_STD_P= " \ "_GLIBCXX_STD_P= " \
"_GLIBCXX_STD_D= " \ "_GLIBCXX_STD_D= " \
_GLIBCXX_STD=std \ _GLIBCXX_STD=std \
...@@ -1430,11 +1433,12 @@ PREDEFINED = __cplusplus \ ...@@ -1430,11 +1433,12 @@ PREDEFINED = __cplusplus \
_GLIBCXX_END_NAMESPACE=} \ _GLIBCXX_END_NAMESPACE=} \
_GLIBCXX_END_NESTED_NAMESPACE=} \ _GLIBCXX_END_NESTED_NAMESPACE=} \
"_GLIBCXX_TEMPLATE_ARGS=... " \ "_GLIBCXX_TEMPLATE_ARGS=... " \
_GLIBCXX_INCLUDE_AS_CXX0X \
_GLIBCXX_DEPRECATED \ _GLIBCXX_DEPRECATED \
_GLIBCXX_USE_WCHAR_T \ _GLIBCXX_USE_WCHAR_T \
_GLIBCXX_USE_LONG_LONG \ _GLIBCXX_USE_LONG_LONG \
_GLIBCXX_USE_C99_STDINT_TR1 \ _GLIBCXX_USE_C99_STDINT_TR1 \
_GLIBCXX_USE_SCHED_YIELD \
_GLIBCXX_USE_NANOSLEEP \
__glibcxx_function_requires=// \ __glibcxx_function_requires=// \
__glibcxx_class_requires=// \ __glibcxx_class_requires=// \
__glibcxx_class_requires2=// \ __glibcxx_class_requires2=// \
......
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
// 20.3.6 binders // 20.3.6 binders
/** @defgroup binder Binder Classes /** @defgroup binders Binder Classes
* @ingroup functors * @ingroup functors
* *
* Binders turn functions/functors with two arguments into functors with * Binders turn functions/functors with two arguments into functors with
...@@ -97,7 +97,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -97,7 +97,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* *
* @{ * @{
*/ */
/// One of the @link binder binder functors@endlink. /// One of the @link binders binder functors@endlink.
template<typename _Operation> template<typename _Operation>
class binder1st class binder1st
: public unary_function<typename _Operation::second_argument_type, : public unary_function<typename _Operation::second_argument_type,
...@@ -123,7 +123,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -123,7 +123,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
{ return op(value, __x); } { return op(value, __x); }
} _GLIBCXX_DEPRECATED_ATTR; } _GLIBCXX_DEPRECATED_ATTR;
/// One of the @link binder binder functors@endlink. /// One of the @link binders binder functors@endlink.
template<typename _Operation, typename _Tp> template<typename _Operation, typename _Tp>
inline binder1st<_Operation> inline binder1st<_Operation>
bind1st(const _Operation& __fn, const _Tp& __x) bind1st(const _Operation& __fn, const _Tp& __x)
...@@ -132,7 +132,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -132,7 +132,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
return binder1st<_Operation>(__fn, _Arg1_type(__x)); return binder1st<_Operation>(__fn, _Arg1_type(__x));
} }
/// One of the @link binder binder functors@endlink. /// One of the @link binders binder functors@endlink.
template<typename _Operation> template<typename _Operation>
class binder2nd class binder2nd
: public unary_function<typename _Operation::first_argument_type, : public unary_function<typename _Operation::first_argument_type,
...@@ -158,7 +158,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -158,7 +158,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
{ return op(__x, value); } { return op(__x, value); }
} _GLIBCXX_DEPRECATED_ATTR; } _GLIBCXX_DEPRECATED_ATTR;
/// One of the @link binder binder functors@endlink. /// One of the @link binders binder functors@endlink.
template<typename _Operation, typename _Tp> template<typename _Operation, typename _Tp>
inline binder2nd<_Operation> inline binder2nd<_Operation>
bind2nd(const _Operation& __fn, const _Tp& __x) bind2nd(const _Operation& __fn, const _Tp& __x)
......
...@@ -129,8 +129,23 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -129,8 +129,23 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
*/ */
/** /**
* @defgroup set_algorithms Set Operation Algorithms * @defgroup mutating_algorithms Mutating Algorithms
* @ingroup algorithms
*/
/**
* @defgroup non_mutating_algorithms Non-Mutating Algorithms
* @ingroup algorithms
*/
/**
* @defgroup sorting_algorithms Sorting Algorithms
* @ingroup algorithms * @ingroup algorithms
*/
/**
* @defgroup set_algorithms Set Operation Algorithms
* @ingroup sorting_algorithms
* *
* These algorithms are common set operations performed on sequences * These algorithms are common set operations performed on sequences
* that are already sorted. The number of comparisons will be * that are already sorted. The number of comparisons will be
...@@ -139,7 +154,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -139,7 +154,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @defgroup binary_search_algorithms Binary Search Algorithms * @defgroup binary_search_algorithms Binary Search Algorithms
* @ingroup algorithms * @ingroup sorting_algorithms
* *
* These algorithms are variations of a classic binary search, and * These algorithms are variations of a classic binary search, and
* all assume that the sequence being searched is already sorted. * all assume that the sequence being searched is already sorted.
......
// Allocators -*- C++ -*- // Allocators -*- C++ -*-
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
// 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,6 +54,13 @@ ...@@ -54,6 +54,13 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/**
* @defgroup allocators Allocators
* @ingroup memory
*
* Classes encapsulating memory operations.
*/
template<typename _Tp> template<typename _Tp>
class allocator; class allocator;
...@@ -75,6 +82,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -75,6 +82,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief The "standard" allocator, as per [20.4]. * @brief The "standard" allocator, as per [20.4].
* @ingroup allocators
* *
* Further details: * Further details:
* http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt04ch11.html * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt04ch11.html
......
// Iostreams base classes -*- C++ -*- // Iostreams base classes -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
// 2006, 2007, 2008 // 2006, 2007, 2008, 2009
// 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,6 +58,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -58,6 +58,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// 27.4.5 Template class basic_ios // 27.4.5 Template class basic_ios
/** /**
* @brief Virtual base class for all stream classes. * @brief Virtual base class for all stream classes.
* @ingroup io
* *
* Most of the member functions called dispatched on stream objects * Most of the member functions called dispatched on stream objects
* (e.g., @c std::cout.foo(bar);) are consolidated in this class. * (e.g., @c std::cout.foo(bar);) are consolidated in this class.
......
...@@ -53,7 +53,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -53,7 +53,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @class basic_string basic_string.h <string> * @class basic_string basic_string.h <string>
* @brief Managing sequences of characters and character-like objects. * @brief Managing sequences of characters and character-like objects.
* *
* @ingroup containers
* @ingroup sequences * @ingroup sequences
* *
* Meets the requirements of a <a href="tables.html#65">container</a>, a * Meets the requirements of a <a href="tables.html#65">container</a>, a
......
...@@ -400,7 +400,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -400,7 +400,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @brief A standard container with linear time access to elements, * @brief A standard container with linear time access to elements,
* and fixed time insertion/deletion at any point in the sequence. * and fixed time insertion/deletion at any point in the sequence.
* *
* @ingroup containers
* @ingroup sequences * @ingroup sequences
* *
* Meets the requirements of a <a href="tables.html#65">container</a>, a * Meets the requirements of a <a href="tables.html#65">container</a>, a
......
// The template and inlines for the -*- C++ -*- gslice class. // The template and inlines for the -*- C++ -*- gslice class.
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004, 2005, 2006 // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004, 2005, 2006, 2009
// 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
...@@ -43,6 +43,11 @@ ...@@ -43,6 +43,11 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @addtogroup numeric_arrays
* @{
*/
/**
* @brief Class defining multi-dimensional subset of an array. * @brief Class defining multi-dimensional subset of an array.
* *
* The slice class represents a multi-dimensional subset of an array, * The slice class represents a multi-dimensional subset of an array,
...@@ -175,6 +180,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -175,6 +180,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
return *this; return *this;
} }
// @} group numeric_arrays
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
#endif /* _GSLICE_H */ #endif /* _GSLICE_H */
// The template and inlines for the -*- C++ -*- gslice_array class. // The template and inlines for the -*- C++ -*- gslice_array class.
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004, 2005 // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004, 2005, 2009
// 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
...@@ -43,6 +43,11 @@ ...@@ -43,6 +43,11 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @addtogroup numeric_arrays
* @{
*/
/**
* @brief Reference to multi-dimensional subset of an array. * @brief Reference to multi-dimensional subset of an array.
* *
* A gslice_array is a reference to the actual elements of an array * A gslice_array is a reference to the actual elements of an array
...@@ -209,6 +214,8 @@ _DEFINE_VALARRAY_OPERATOR(>>, __shift_right) ...@@ -209,6 +214,8 @@ _DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
#undef _DEFINE_VALARRAY_OPERATOR #undef _DEFINE_VALARRAY_OPERATOR
// @} group numeric_arrays
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
#endif /* _GSLICE_ARRAY_H */ #endif /* _GSLICE_ARRAY_H */
// The template and inlines for the -*- C++ -*- indirect_array class. // The template and inlines for the -*- C++ -*- indirect_array class.
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005 // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2009
// 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
...@@ -43,6 +43,11 @@ ...@@ -43,6 +43,11 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @addtogroup numeric_arrays
* @{
*/
/**
* @brief Reference to arbitrary subset of an array. * @brief Reference to arbitrary subset of an array.
* *
* An indirect_array is a reference to the actual elements of an array * An indirect_array is a reference to the actual elements of an array
...@@ -203,6 +208,8 @@ _DEFINE_VALARRAY_OPERATOR(>>, __shift_right) ...@@ -203,6 +208,8 @@ _DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
#undef _DEFINE_VALARRAY_OPERATOR #undef _DEFINE_VALARRAY_OPERATOR
// @} group numeric_arrays
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
#endif /* _INDIRECT_ARRAY_H */ #endif /* _INDIRECT_ARRAY_H */
// Iostreams base classes -*- C++ -*- // Iostreams base classes -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
// 2006, 2007, 2008 // 2006, 2007, 2008, 2009
// 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
...@@ -202,6 +202,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -202,6 +202,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// 27.4.2 Class ios_base // 27.4.2 Class ios_base
/** /**
* @brief The base of the I/O class hierarchy. * @brief The base of the I/O class hierarchy.
* @ingroup io
* *
* This class defines everything that can be defined about I/O that does * This class defines everything that can be defined about I/O that does
* not depend on the type of characters being input or output. Most * not depend on the type of characters being input or output. Most
...@@ -212,8 +213,12 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -212,8 +213,12 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
{ {
public: public:
// 27.4.2.1.1 Class ios_base::failure /**
/// These are thrown to indicate problems. Doc me. * @brief These are thrown to indicate problems with io.
* @ingroup exceptions
*
* 27.4.2.1.1 Class ios_base::failure
*/
class failure : public exception class failure : public exception
{ {
public: public:
......
// The template and inlines for the -*- C++ -*- mask_array class. // The template and inlines for the -*- C++ -*- mask_array class.
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005 // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2009
// 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
...@@ -43,6 +43,11 @@ ...@@ -43,6 +43,11 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @addtogroup numeric_arrays
* @{
*/
/**
* @brief Reference to selected subset of an array. * @brief Reference to selected subset of an array.
* *
* A mask_array is a reference to the actual elements of an array specified * A mask_array is a reference to the actual elements of an array specified
...@@ -199,6 +204,8 @@ _DEFINE_VALARRAY_OPERATOR(>>, __shift_right) ...@@ -199,6 +204,8 @@ _DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
#undef _DEFINE_VALARRAY_OPERATOR #undef _DEFINE_VALARRAY_OPERATOR
// @} group numeric_arrays
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
#endif /* _MASK_ARRAY_H */ #endif /* _MASK_ARRAY_H */
// <bits/shared_ptr.h> -*- C++ -*- // shared_ptr and weak_ptr implementation -*- C++ -*-
// Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc. // Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
// //
...@@ -59,8 +59,13 @@ ...@@ -59,8 +59,13 @@
# error C++0x header cannot be included from TR1 header # error C++0x header cannot be included from TR1 header
#endif #endif
namespace std _GLIBCXX_BEGIN_NAMESPACE(std)
{
/**
* @addtogroup pointer_abstractions
* @{
*/
// counted ptr with no deleter or allocator support // counted ptr with no deleter or allocator support
template<typename _Ptr, _Lock_policy _Lp> template<typename _Ptr, _Lock_policy _Lp>
class _Sp_counted_ptr class _Sp_counted_ptr
...@@ -541,13 +546,6 @@ namespace std ...@@ -541,13 +546,6 @@ namespace std
{ } { }
/**
* @class __shared_ptr
*
* A smart pointer with reference-counted copy semantics.
* The object pointed to is deleted when the last shared_ptr pointing to
* it is destroyed or reset.
*/
template<typename _Tp, _Lock_policy _Lp> template<typename _Tp, _Lock_policy _Lp>
class __shared_ptr class __shared_ptr
{ {
...@@ -1228,10 +1226,12 @@ namespace std ...@@ -1228,10 +1226,12 @@ namespace std
mutable __weak_ptr<_Tp, _Lp> _M_weak_this; mutable __weak_ptr<_Tp, _Lp> _M_weak_this;
}; };
/**
/// shared_ptr * @brief A smart pointer with reference-counted copy semantics.
// The actual shared_ptr, with forwarding constructors and *
// assignment operators. * The object pointed to is deleted when the last shared_ptr pointing to
* it is destroyed or reset.
*/
template<typename _Tp> template<typename _Tp>
class shared_ptr class shared_ptr
: public __shared_ptr<_Tp> : public __shared_ptr<_Tp>
...@@ -1405,9 +1405,11 @@ namespace std ...@@ -1405,9 +1405,11 @@ namespace std
} }
/// weak_ptr /**
// The actual weak_ptr, with forwarding constructors and * @brief A smart pointer with weak semantics.
// assignment operators. *
* With forwarding constructors and assignment operators.
*/
template<typename _Tp> template<typename _Tp>
class weak_ptr class weak_ptr
: public __weak_ptr<_Tp> : public __weak_ptr<_Tp>
...@@ -1489,7 +1491,9 @@ namespace std ...@@ -1489,7 +1491,9 @@ namespace std
: public _Sp_owner_less<weak_ptr<_Tp>, shared_ptr<_Tp>> : public _Sp_owner_less<weak_ptr<_Tp>, shared_ptr<_Tp>>
{ }; { };
/// enable_shared_from_this /**
* @brief Base class allowing use of member function shared_from_this.
*/
template<typename _Tp> template<typename _Tp>
class enable_shared_from_this class enable_shared_from_this
{ {
...@@ -1549,7 +1553,7 @@ namespace std ...@@ -1549,7 +1553,7 @@ namespace std
std::forward<_Args>(__args)...); std::forward<_Args>(__args)...);
} }
/** @brief Create an object that is owned by a shared_ptr. /** @brief Create an object that is owned by a shared_ptr.
* @param __a An allocator. * @param __a An allocator.
* @param __args Arguments for the @a _Tp object's constructor. * @param __args Arguments for the @a _Tp object's constructor.
* @return A shared_ptr that owns the newly created object. * @return A shared_ptr that owns the newly created object.
...@@ -1582,4 +1586,6 @@ namespace std ...@@ -1582,4 +1586,6 @@ namespace std
std::forward<_Args>(__args)...); std::forward<_Args>(__args)...);
} }
} // @} group pointer_abstractions
_GLIBCXX_END_NAMESPACE
// The template and inlines for the -*- C++ -*- slice_array class. // The template and inlines for the -*- C++ -*- slice_array class.
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006 // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2009
// 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
...@@ -43,6 +43,11 @@ ...@@ -43,6 +43,11 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @addtogroup numeric_arrays
* @{
*/
/**
* @brief Class defining one-dimensional subset of an array. * @brief Class defining one-dimensional subset of an array.
* *
* The slice class represents a one-dimensional subset of an array, * The slice class represents a one-dimensional subset of an array,
...@@ -265,6 +270,8 @@ _DEFINE_VALARRAY_OPERATOR(>>, __shift_right) ...@@ -265,6 +270,8 @@ _DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
#undef _DEFINE_VALARRAY_OPERATOR #undef _DEFINE_VALARRAY_OPERATOR
// @} group numeric_arrays
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
#endif /* _SLICE_ARRAY_H */ #endif /* _SLICE_ARRAY_H */
...@@ -78,11 +78,6 @@ ...@@ -78,11 +78,6 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/**
* @addtogroup algorithms Algorithms
* @{
*/
// See http://gcc.gnu.org/ml/libstdc++/2004-08/msg00167.html: in a // See http://gcc.gnu.org/ml/libstdc++/2004-08/msg00167.html: in a
// nutshell, we are partially implementing the resolution of DR 187, // nutshell, we are partially implementing the resolution of DR 187,
// when it's safe, i.e., the value_types are equal. // when it's safe, i.e., the value_types are equal.
...@@ -114,6 +109,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -114,6 +109,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Swaps the contents of two iterators. * @brief Swaps the contents of two iterators.
* @ingroup mutating_algorithms
* @param a An iterator. * @param a An iterator.
* @param b Another iterator. * @param b Another iterator.
* @return Nothing. * @return Nothing.
...@@ -152,6 +148,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -152,6 +148,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Swap the elements of two sequences. * @brief Swap the elements of two sequences.
* @ingroup mutating_algorithms
* @param first1 A forward iterator. * @param first1 A forward iterator.
* @param last1 A forward iterator. * @param last1 A forward iterator.
* @param first2 A forward iterator. * @param first2 A forward iterator.
...@@ -180,6 +177,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -180,6 +177,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief This does what you think it does. * @brief This does what you think it does.
* @ingroup sorting_algorithms
* @param a A thing of arbitrary type. * @param a A thing of arbitrary type.
* @param b Another thing of arbitrary type. * @param b Another thing of arbitrary type.
* @return The lesser of the parameters. * @return The lesser of the parameters.
...@@ -202,6 +200,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -202,6 +200,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief This does what you think it does. * @brief This does what you think it does.
* @ingroup sorting_algorithms
* @param a A thing of arbitrary type. * @param a A thing of arbitrary type.
* @param b Another thing of arbitrary type. * @param b Another thing of arbitrary type.
* @return The greater of the parameters. * @return The greater of the parameters.
...@@ -224,6 +223,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -224,6 +223,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief This does what you think it does. * @brief This does what you think it does.
* @ingroup sorting_algorithms
* @param a A thing of arbitrary type. * @param a A thing of arbitrary type.
* @param b Another thing of arbitrary type. * @param b Another thing of arbitrary type.
* @param comp A @link comparison_functors comparison functor@endlink. * @param comp A @link comparison_functors comparison functor@endlink.
...@@ -244,6 +244,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -244,6 +244,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief This does what you think it does. * @brief This does what you think it does.
* @ingroup sorting_algorithms
* @param a A thing of arbitrary type. * @param a A thing of arbitrary type.
* @param b Another thing of arbitrary type. * @param b Another thing of arbitrary type.
* @param comp A @link comparison_functors comparison functor@endlink. * @param comp A @link comparison_functors comparison functor@endlink.
...@@ -442,6 +443,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -442,6 +443,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Copies the range [first,last) into result. * @brief Copies the range [first,last) into result.
* @ingroup mutating_algorithms
* @param first An input iterator. * @param first An input iterator.
* @param last An input iterator. * @param last An input iterator.
* @param result An output iterator. * @param result An output iterator.
...@@ -474,6 +476,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -474,6 +476,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
#ifdef __GXX_EXPERIMENTAL_CXX0X__ #ifdef __GXX_EXPERIMENTAL_CXX0X__
/** /**
* @brief Moves the range [first,last) into result. * @brief Moves the range [first,last) into result.
* @ingroup mutating_algorithms
* @param first An input iterator. * @param first An input iterator.
* @param last An input iterator. * @param last An input iterator.
* @param result An output iterator. * @param result An output iterator.
...@@ -609,6 +612,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -609,6 +612,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Copies the range [first,last) into result. * @brief Copies the range [first,last) into result.
* @ingroup mutating_algorithms
* @param first A bidirectional iterator. * @param first A bidirectional iterator.
* @param last A bidirectional iterator. * @param last A bidirectional iterator.
* @param result A bidirectional iterator. * @param result A bidirectional iterator.
...@@ -644,6 +648,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -644,6 +648,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
#ifdef __GXX_EXPERIMENTAL_CXX0X__ #ifdef __GXX_EXPERIMENTAL_CXX0X__
/** /**
* @brief Moves the range [first,last) into result. * @brief Moves the range [first,last) into result.
* @ingroup mutating_algorithms
* @param first A bidirectional iterator. * @param first A bidirectional iterator.
* @param last A bidirectional iterator. * @param last A bidirectional iterator.
* @param result A bidirectional iterator. * @param result A bidirectional iterator.
...@@ -715,6 +720,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -715,6 +720,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Fills the range [first,last) with copies of value. * @brief Fills the range [first,last) with copies of value.
* @ingroup mutating_algorithms
* @param first A forward iterator. * @param first A forward iterator.
* @param last A forward iterator. * @param last A forward iterator.
* @param value A reference-to-const of arbitrary type. * @param value A reference-to-const of arbitrary type.
...@@ -769,6 +775,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -769,6 +775,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Fills the range [first,first+n) with copies of value. * @brief Fills the range [first,first+n) with copies of value.
* @ingroup mutating_algorithms
* @param first An output iterator. * @param first An output iterator.
* @param n The count of copies to perform. * @param n The count of copies to perform.
* @param value A reference-to-const of arbitrary type. * @param value A reference-to-const of arbitrary type.
...@@ -929,19 +936,13 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -929,19 +936,13 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
__first2, __last2); __first2, __last2);
} }
/* @} */ // group algorithms
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P) _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @addtogroup algorithms Algorithms
* @{
*/
/**
* @brief Tests a range for element-wise equality. * @brief Tests a range for element-wise equality.
* @ingroup non_mutating_algorithms
* @param first1 An input iterator. * @param first1 An input iterator.
* @param last1 An input iterator. * @param last1 An input iterator.
* @param first2 An input iterator. * @param first2 An input iterator.
...@@ -970,6 +971,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P) ...@@ -970,6 +971,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Tests a range for element-wise equality. * @brief Tests a range for element-wise equality.
* @ingroup non_mutating_algorithms
* @param first1 An input iterator. * @param first1 An input iterator.
* @param last1 An input iterator. * @param last1 An input iterator.
* @param first2 An input iterator. * @param first2 An input iterator.
...@@ -1000,6 +1002,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P) ...@@ -1000,6 +1002,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Performs "dictionary" comparison on ranges. * @brief Performs "dictionary" comparison on ranges.
* @ingroup sorting_algorithms
* @param first1 An input iterator. * @param first1 An input iterator.
* @param last1 An input iterator. * @param last1 An input iterator.
* @param first2 An input iterator. * @param first2 An input iterator.
...@@ -1036,6 +1039,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P) ...@@ -1036,6 +1039,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Performs "dictionary" comparison on ranges. * @brief Performs "dictionary" comparison on ranges.
* @ingroup sorting_algorithms
* @param first1 An input iterator. * @param first1 An input iterator.
* @param last1 An input iterator. * @param last1 An input iterator.
* @param first2 An input iterator. * @param first2 An input iterator.
...@@ -1075,6 +1079,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P) ...@@ -1075,6 +1079,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Finds the places in ranges which don't match. * @brief Finds the places in ranges which don't match.
* @ingroup non_mutating_algorithms
* @param first1 An input iterator. * @param first1 An input iterator.
* @param last1 An input iterator. * @param last1 An input iterator.
* @param first2 An input iterator. * @param first2 An input iterator.
...@@ -1108,6 +1113,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P) ...@@ -1108,6 +1113,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Finds the places in ranges which don't match. * @brief Finds the places in ranges which don't match.
* @ingroup non_mutating_algorithms
* @param first1 An input iterator. * @param first1 An input iterator.
* @param last1 An input iterator. * @param last1 An input iterator.
* @param first2 An input iterator. * @param first2 An input iterator.
...@@ -1140,8 +1146,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P) ...@@ -1140,8 +1146,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
return pair<_InputIterator1, _InputIterator2>(__first1, __first2); return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
} }
/* @} */ // group algorithms
_GLIBCXX_END_NESTED_NAMESPACE _GLIBCXX_END_NESTED_NAMESPACE
// NB: This file is included within many other C++ includes, as a way // NB: This file is included within many other C++ includes, as a way
......
...@@ -467,7 +467,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -467,7 +467,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
* really references and pointers to bool. See DR96 for details. @see * really references and pointers to bool. See DR96 for details. @see
* vector for function documentation. * vector for function documentation.
* *
* @ingroup containers
* @ingroup sequences * @ingroup sequences
* *
* In some terminology a %vector can be described as a dynamic * In some terminology a %vector can be described as a dynamic
......
...@@ -562,7 +562,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -562,7 +562,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
* @brief A standard container using fixed-size memory allocation and * @brief A standard container using fixed-size memory allocation and
* constant-time manipulation of elements at either end. * constant-time manipulation of elements at either end.
* *
* @ingroup containers
* @ingroup sequences * @ingroup sequences
* *
* Meets the requirements of a <a href="tables.html#65">container</a>, a * Meets the requirements of a <a href="tables.html#65">container</a>, a
......
// Heap implementation -*- C++ -*- // Heap implementation -*- C++ -*-
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
// 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
...@@ -66,6 +66,11 @@ ...@@ -66,6 +66,11 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/**
* @defgroup heap_algorithms Heap Algorithms
* @ingroup sorting_algorithms
*/
template<typename _RandomAccessIterator, typename _Distance> template<typename _RandomAccessIterator, typename _Distance>
_Distance _Distance
__is_heap_until(_RandomAccessIterator __first, _Distance __n) __is_heap_until(_RandomAccessIterator __first, _Distance __n)
...@@ -144,7 +149,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -144,7 +149,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @brief Push an element onto a heap. * @brief Push an element onto a heap.
* @param first Start of heap. * @param first Start of heap.
* @param last End of heap + element. * @param last End of heap + element.
* @ingroup heap * @ingroup heap_algorithms
* *
* This operation pushes the element at last-1 onto the valid heap over the * This operation pushes the element at last-1 onto the valid heap over the
* range [first,last-1). After completion, [first,last) is a valid heap. * range [first,last-1). After completion, [first,last) is a valid heap.
...@@ -192,7 +197,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -192,7 +197,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @param first Start of heap. * @param first Start of heap.
* @param last End of heap + element. * @param last End of heap + element.
* @param comp Comparison functor. * @param comp Comparison functor.
* @ingroup heap * @ingroup heap_algorithms
* *
* This operation pushes the element at last-1 onto the valid heap over the * This operation pushes the element at last-1 onto the valid heap over the
* range [first,last-1). After completion, [first,last) is a valid heap. * range [first,last-1). After completion, [first,last) is a valid heap.
...@@ -266,7 +271,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -266,7 +271,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @brief Pop an element off a heap. * @brief Pop an element off a heap.
* @param first Start of heap. * @param first Start of heap.
* @param last End of heap. * @param last End of heap.
* @ingroup heap * @ingroup heap_algorithms
* *
* This operation pops the top of the heap. The elements first and last-1 * This operation pops the top of the heap. The elements first and last-1
* are swapped and [first,last-1) is made into a heap. * are swapped and [first,last-1) is made into a heap.
...@@ -339,7 +344,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -339,7 +344,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @param first Start of heap. * @param first Start of heap.
* @param last End of heap. * @param last End of heap.
* @param comp Comparison functor to use. * @param comp Comparison functor to use.
* @ingroup heap * @ingroup heap_algorithms
* *
* This operation pops the top of the heap. The elements first and last-1 * This operation pops the top of the heap. The elements first and last-1
* are swapped and [first,last-1) is made into a heap. Comparisons are * are swapped and [first,last-1) is made into a heap. Comparisons are
...@@ -364,7 +369,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -364,7 +369,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @brief Construct a heap over a range. * @brief Construct a heap over a range.
* @param first Start of heap. * @param first Start of heap.
* @param last End of heap. * @param last End of heap.
* @ingroup heap * @ingroup heap_algorithms
* *
* This operation makes the elements in [first,last) into a heap. * This operation makes the elements in [first,last) into a heap.
*/ */
...@@ -403,7 +408,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -403,7 +408,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @param first Start of heap. * @param first Start of heap.
* @param last End of heap. * @param last End of heap.
* @param comp Comparison functor to use. * @param comp Comparison functor to use.
* @ingroup heap * @ingroup heap_algorithms
* *
* This operation makes the elements in [first,last) into a heap. * This operation makes the elements in [first,last) into a heap.
* Comparisons are made using comp. * Comparisons are made using comp.
...@@ -443,7 +448,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -443,7 +448,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @brief Sort a heap. * @brief Sort a heap.
* @param first Start of heap. * @param first Start of heap.
* @param last End of heap. * @param last End of heap.
* @ingroup heap * @ingroup heap_algorithms
* *
* This operation sorts the valid heap in the range [first,last). * This operation sorts the valid heap in the range [first,last).
*/ */
...@@ -471,7 +476,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -471,7 +476,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @param first Start of heap. * @param first Start of heap.
* @param last End of heap. * @param last End of heap.
* @param comp Comparison functor to use. * @param comp Comparison functor to use.
* @ingroup heap * @ingroup heap_algorithms
* *
* This operation sorts the valid heap in the range [first,last). * This operation sorts the valid heap in the range [first,last).
* Comparisons are made using comp. * Comparisons are made using comp.
...@@ -500,7 +505,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -500,7 +505,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @param first Start of range. * @param first Start of range.
* @param last End of range. * @param last End of range.
* @return An iterator pointing to the first element not in the heap. * @return An iterator pointing to the first element not in the heap.
* @ingroup heap * @ingroup heap_algorithms
* *
* This operation returns the last iterator i in [first, last) for which * This operation returns the last iterator i in [first, last) for which
* the range [first, i) is a heap. * the range [first, i) is a heap.
...@@ -526,7 +531,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -526,7 +531,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @param last End of range. * @param last End of range.
* @param comp Comparison functor to use. * @param comp Comparison functor to use.
* @return An iterator pointing to the first element not in the heap. * @return An iterator pointing to the first element not in the heap.
* @ingroup heap * @ingroup heap_algorithms
* *
* This operation returns the last iterator i in [first, last) for which * This operation returns the last iterator i in [first, last) for which
* the range [first, i) is a heap. Comparisons are made using comp. * the range [first, i) is a heap. Comparisons are made using comp.
...@@ -551,7 +556,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -551,7 +556,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @param first Start of range. * @param first Start of range.
* @param last End of range. * @param last End of range.
* @return True if range is a heap, false otherwise. * @return True if range is a heap, false otherwise.
* @ingroup heap * @ingroup heap_algorithms
*/ */
template<typename _RandomAccessIterator> template<typename _RandomAccessIterator>
inline bool inline bool
...@@ -564,7 +569,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -564,7 +569,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @param last End of range. * @param last End of range.
* @param comp Comparison functor to use. * @param comp Comparison functor to use.
* @return True if range is a heap, false otherwise. * @return True if range is a heap, false otherwise.
* @ingroup heap * @ingroup heap_algorithms
*/ */
template<typename _RandomAccessIterator, typename _Compare> template<typename _RandomAccessIterator, typename _Compare>
inline bool inline bool
......
...@@ -379,7 +379,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -379,7 +379,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
* @brief A standard container with linear time access to elements, * @brief A standard container with linear time access to elements,
* and fixed time insertion/deletion at any point in the sequence. * and fixed time insertion/deletion at any point in the sequence.
* *
* @ingroup containers
* @ingroup sequences * @ingroup sequences
* *
* Meets the requirements of a <a href="tables.html#65">container</a>, a * Meets the requirements of a <a href="tables.html#65">container</a>, a
......
...@@ -72,7 +72,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -72,7 +72,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
* @brief A standard container made up of (key,value) pairs, which can be * @brief A standard container made up of (key,value) pairs, which can be
* retrieved based on a key, in logarithmic time. * retrieved based on a key, in logarithmic time.
* *
* @ingroup containers
* @ingroup associative_containers * @ingroup associative_containers
* *
* Meets the requirements of a <a href="tables.html#65">container</a>, a * Meets the requirements of a <a href="tables.html#65">container</a>, a
......
...@@ -71,7 +71,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -71,7 +71,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
* @brief A standard container made up of (key,value) pairs, which can be * @brief A standard container made up of (key,value) pairs, which can be
* retrieved based on a key, in logarithmic time. * retrieved based on a key, in logarithmic time.
* *
* @ingroup containers
* @ingroup associative_containers * @ingroup associative_containers
* *
* Meets the requirements of a <a href="tables.html#65">container</a>, a * Meets the requirements of a <a href="tables.html#65">container</a>, a
......
...@@ -71,7 +71,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -71,7 +71,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
* @brief A standard container made up of elements, which can be retrieved * @brief A standard container made up of elements, which can be retrieved
* in logarithmic time. * in logarithmic time.
* *
* @ingroup containers
* @ingroup associative_containers * @ingroup associative_containers
* *
* Meets the requirements of a <a href="tables.html#65">container</a>, a * Meets the requirements of a <a href="tables.html#65">container</a>, a
......
...@@ -70,7 +70,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -70,7 +70,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief A standard container giving FIFO behavior. * @brief A standard container giving FIFO behavior.
* *
* @ingroup containers
* @ingroup sequences * @ingroup sequences
* *
* Meets many of the requirements of a * Meets many of the requirements of a
...@@ -338,7 +337,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -338,7 +337,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief A standard container automatically sorting its contents. * @brief A standard container automatically sorting its contents.
* *
* @ingroup containers
* @ingroup sequences * @ingroup sequences
* *
* This is not a true container, but an @e adaptor. It holds * This is not a true container, but an @e adaptor. It holds
......
...@@ -71,7 +71,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -71,7 +71,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
* @brief A standard container made up of unique keys, which can be * @brief A standard container made up of unique keys, which can be
* retrieved in logarithmic time. * retrieved in logarithmic time.
* *
* @ingroup containers
* @ingroup associative_containers * @ingroup associative_containers
* *
* Meets the requirements of a <a href="tables.html#65">container</a>, a * Meets the requirements of a <a href="tables.html#65">container</a>, a
......
...@@ -70,7 +70,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -70,7 +70,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief A standard container giving FILO behavior. * @brief A standard container giving FILO behavior.
* *
* @ingroup containers
* @ingroup sequences * @ingroup sequences
* *
* Meets many of the requirements of a * Meets many of the requirements of a
......
...@@ -157,7 +157,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) ...@@ -157,7 +157,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
* @brief A standard container which offers fixed time access to * @brief A standard container which offers fixed time access to
* individual elements in any order. * individual elements in any order.
* *
* @ingroup containers
* @ingroup sequences * @ingroup sequences
* *
* Meets the requirements of a <a href="tables.html#65">container</a>, a * Meets the requirements of a <a href="tables.html#65">container</a>, a
......
...@@ -47,6 +47,11 @@ ...@@ -47,6 +47,11 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/**
* @addtogroup pointer_abstractions
* @{
*/
/// Primary template, default_delete. /// Primary template, default_delete.
template<typename _Tp> template<typename _Tp>
struct default_delete struct default_delete
...@@ -443,6 +448,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -443,6 +448,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
const unique_ptr<_Up, _Up_Deleter>& __y) const unique_ptr<_Up, _Up_Deleter>& __y)
{ return !(__x.get() < __y.get()); } { return !(__x.get() < __y.get()); }
// @} group pointer_abstractions
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
#endif /* _UNIQUE_PTR_H */ #endif /* _UNIQUE_PTR_H */
// -*- C++ -*- compatibility header. // -*- C++ -*- compatibility header.
// Copyright (C) 2008 Free Software Foundation, Inc. // Copyright (C) 2008, 2009 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
...@@ -41,6 +41,13 @@ ...@@ -41,6 +41,13 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
_GLIBCXX_BEGIN_EXTERN_C _GLIBCXX_BEGIN_EXTERN_C
/**
* @defgroup atomics Atomics
*
* Components for performing atomic operations.
* @{
*/
/// Enumeration for memory_order /// Enumeration for memory_order
typedef enum memory_order typedef enum memory_order
{ {
...@@ -179,6 +186,8 @@ _GLIBCXX_BEGIN_EXTERN_C ...@@ -179,6 +186,8 @@ _GLIBCXX_BEGIN_EXTERN_C
atomic_flag_clear_explicit(__g, __x); \ atomic_flag_clear_explicit(__g, __x); \
__r; }) __r; })
// @} group atomics
_GLIBCXX_END_EXTERN_C _GLIBCXX_END_EXTERN_C
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
......
// -*- C++ -*- header. // -*- C++ -*- header.
// Copyright (C) 2008 // Copyright (C) 2008, 2009
// 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,6 +55,11 @@ ...@@ -55,6 +55,11 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/**
* @addtogroup atomics
* @{
*/
/// kill_dependency /// kill_dependency
template<typename _Tp> template<typename _Tp>
inline _Tp inline _Tp
...@@ -839,6 +844,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -839,6 +844,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
atomic_fetch_xor(volatile __atomic_base<_ITp>* __a, _ITp __i) atomic_fetch_xor(volatile __atomic_base<_ITp>* __a, _ITp __i)
{ return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); } { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); }
// @} group atomics
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
#endif #endif
......
// array allocator -*- C++ -*- // array allocator -*- C++ -*-
// Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. // Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009
// 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
...@@ -94,6 +95,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -94,6 +95,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
/** /**
* @brief An allocator that uses previously allocated memory. * @brief An allocator that uses previously allocated memory.
* This memory can be externally, globally, or otherwise allocated. * This memory can be externally, globally, or otherwise allocated.
* @ingroup allocators
*/ */
template<typename _Tp, typename _Array = std::tr1::array<_Tp, 1> > template<typename _Tp, typename _Array = std::tr1::array<_Tp, 1> >
class array_allocator : public array_allocator_base<_Tp> class array_allocator : public array_allocator_base<_Tp>
......
// Bitmap Allocator. -*- C++ -*- // Bitmap Allocator. -*- C++ -*-
// Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. // Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009
// 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
...@@ -706,7 +707,10 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -706,7 +707,10 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
}; };
}; };
/// Primary template /**
* @brief Bitmap Allocator, primary template.
* @ingroup allocators
*/
template<typename _Tp> template<typename _Tp>
class bitmap_allocator : private free_list class bitmap_allocator : private free_list
{ {
......
...@@ -56,6 +56,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -56,6 +56,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
/** /**
* @brief A meta-allocator with debugging bits, as per [20.4]. * @brief A meta-allocator with debugging bits, as per [20.4].
* @ingroup allocators
* *
* This is precisely the allocator defined in the C++ Standard. * This is precisely the allocator defined in the C++ Standard.
* - all allocation calls operator new * - all allocation calls operator new
......
// <extptr_allocator.h> -*- C++ -*- // <extptr_allocator.h> -*- C++ -*-
// Copyright (C) 2008 Free Software Foundation, Inc. // Copyright (C) 2008, 2009 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
...@@ -47,6 +47,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -47,6 +47,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
/** /**
* @brief An example allocator which uses a non-standard pointer type. * @brief An example allocator which uses a non-standard pointer type.
* @ingroup allocators
* *
* This allocator specifies that containers use a 'relative pointer' as it's * This allocator specifies that containers use a 'relative pointer' as it's
* pointer type. (See ext/pointer.h) Memory allocation in this example * pointer type. (See ext/pointer.h) Memory allocation in this example
......
// Allocator that wraps "C" malloc -*- C++ -*- // Allocator that wraps "C" malloc -*- C++ -*-
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
// 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
...@@ -47,6 +47,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -47,6 +47,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
/** /**
* @brief An allocator that uses malloc. * @brief An allocator that uses malloc.
* @ingroup allocators
* *
* This is precisely the allocator defined in the C++ Standard. * This is precisely the allocator defined in the C++ Standard.
* - all allocation calls malloc * - all allocation calls malloc
......
// MT-optimized allocator -*- C++ -*- // MT-optimized allocator -*- C++ -*-
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 // Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009
// 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
...@@ -620,6 +620,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -620,6 +620,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
* size per thread plus a "global" one. Steps are taken to limit * size per thread plus a "global" one. Steps are taken to limit
* the per thread freelist sizes (by returning excess back to * the per thread freelist sizes (by returning excess back to
* the "global" list). * the "global" list).
* @ingroup allocators
* *
* Further details: * Further details:
* http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt12ch32.html * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt12ch32.html
......
// Allocator that wraps operator new -*- C++ -*- // Allocator that wraps operator new -*- C++ -*-
// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2009
// 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
...@@ -45,6 +46,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -45,6 +46,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
/** /**
* @brief An allocator that uses global new, as per [20.4]. * @brief An allocator that uses global new, as per [20.4].
* @ingroup allocators
* *
* This is precisely the allocator defined in the C++ Standard. * This is precisely the allocator defined in the C++ Standard.
* - all allocation calls operator new * - all allocation calls operator new
......
// Allocators -*- C++ -*- // Allocators -*- C++ -*-
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
// 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
...@@ -119,7 +119,10 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -119,7 +119,10 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
}; };
/// class __pool_alloc. /**
* @brief Allocator using a memory pool with a single lock.
* @ingroup allocators
*/
template<typename _Tp> template<typename _Tp>
class __pool_alloc : private __pool_alloc_base class __pool_alloc : private __pool_alloc_base
{ {
......
// -*- C++ -*- // -*- C++ -*-
// Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc. // Copyright (C) 2005, 2006, 2007, 2008, 2009 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 terms // software; you can redistribute it and/or modify it under the terms
...@@ -79,7 +79,10 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -79,7 +79,10 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
get_prob(); get_prob();
}; };
/// Thown by throw_allocator. /**
* @brief Thown by throw_allocator.
* @ingroup exceptions
*/
struct forced_exception_error : public std::exception struct forced_exception_error : public std::exception
{ }; { };
...@@ -184,7 +187,10 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -184,7 +187,10 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
static size_t _S_label; static size_t _S_label;
}; };
/// Allocator class with logging and exception control. /**
* @brief Allocator class with logging and exception control.
* @ingroup allocators
*/
template<typename T> template<typename T>
class throw_allocator : public throw_allocator_base class throw_allocator : public throw_allocator_base
{ {
......
// <chrono> -*- C++ -*- // <chrono> -*- C++ -*-
// Copyright (C) 2008 Free Software Foundation, Inc. // Copyright (C) 2008, 2009 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
...@@ -53,6 +53,17 @@ ...@@ -53,6 +53,17 @@
namespace std namespace std
{ {
/**
* @defgroup chrono Time
* @ingroup utilities
*
* Classes and functions for time.
* @{
*/
/** @namespace std::chrono
* @brief ISO C++ 0x entities sub namespace for time and date.
*/
namespace chrono namespace chrono
{ {
template<typename _Rep, typename _Period = ratio<1>> template<typename _Rep, typename _Period = ratio<1>>
...@@ -84,7 +95,7 @@ namespace std ...@@ -84,7 +95,7 @@ namespace std
namespace chrono namespace chrono
{ {
// primary template for duration_cast impl. // Primary template for duration_cast impl.
template<typename _ToDuration, typename _CF, typename _CR, template<typename _ToDuration, typename _CF, typename _CR,
bool _NumIsOne = false, bool _DenIsOne = false> bool _NumIsOne = false, bool _DenIsOne = false>
struct __duration_cast_impl struct __duration_cast_impl
...@@ -132,6 +143,7 @@ namespace std ...@@ -132,6 +143,7 @@ namespace std
} }
}; };
/// duration_cast
template<typename _ToDuration, typename _Rep, typename _Period> template<typename _ToDuration, typename _Rep, typename _Period>
inline _ToDuration inline _ToDuration
duration_cast(const duration<_Rep, _Period>& __d) duration_cast(const duration<_Rep, _Period>& __d)
...@@ -145,11 +157,13 @@ namespace std ...@@ -145,11 +157,13 @@ namespace std
__cf::num == 1, __cf::den == 1>::__cast(__d); __cf::num == 1, __cf::den == 1>::__cast(__d);
} }
/// treat_as_floating_point
template<typename _Rep> template<typename _Rep>
struct treat_as_floating_point struct treat_as_floating_point
: is_floating_point<_Rep> : is_floating_point<_Rep>
{ }; { };
/// duration_values
template<typename _Rep> template<typename _Rep>
struct duration_values struct duration_values
{ {
...@@ -433,11 +447,22 @@ namespace std ...@@ -433,11 +447,22 @@ namespace std
const duration<_Rep2, _Period2>& __rhs) const duration<_Rep2, _Period2>& __rhs)
{ return !(__lhs < __rhs); } { return !(__lhs < __rhs); }
/// nanoseconds
typedef duration<int64_t, nano> nanoseconds; typedef duration<int64_t, nano> nanoseconds;
/// microseconds
typedef duration<int64_t, micro> microseconds; typedef duration<int64_t, micro> microseconds;
/// milliseconds
typedef duration<int64_t, milli> milliseconds; typedef duration<int64_t, milli> milliseconds;
/// seconds
typedef duration<int64_t > seconds; typedef duration<int64_t > seconds;
/// minutes
typedef duration<int, ratio< 60>> minutes; typedef duration<int, ratio< 60>> minutes;
/// hours
typedef duration<int, ratio<3600>> hours; typedef duration<int, ratio<3600>> hours;
/// time_point /// time_point
...@@ -496,6 +521,7 @@ namespace std ...@@ -496,6 +521,7 @@ namespace std
duration __d; duration __d;
}; };
/// time_point_cast
template<typename _ToDuration, typename _Clock, typename _Duration> template<typename _ToDuration, typename _Clock, typename _Duration>
inline time_point<_Clock, _ToDuration> inline time_point<_Clock, _ToDuration>
time_point_cast(const time_point<_Clock, _Duration>& __t) time_point_cast(const time_point<_Clock, _Duration>& __t)
...@@ -621,6 +647,7 @@ namespace std ...@@ -621,6 +647,7 @@ namespace std
}; };
#ifdef _GLIBCXX_USE_CLOCK_MONOTONIC #ifdef _GLIBCXX_USE_CLOCK_MONOTONIC
/// monotonic_clock
struct monotonic_clock struct monotonic_clock
{ {
typedef chrono::nanoseconds duration; typedef chrono::nanoseconds duration;
...@@ -638,8 +665,10 @@ namespace std ...@@ -638,8 +665,10 @@ namespace std
#endif #endif
typedef system_clock high_resolution_clock; typedef system_clock high_resolution_clock;
} } // namespace chrono
}
// @} group chrono
} // namespace std
#endif //_GLIBCXX_USE_C99_STDINT_TR1 #endif //_GLIBCXX_USE_C99_STDINT_TR1
......
// The template and inlines for the -*- C++ -*- complex number classes. // The template and inlines for the -*- C++ -*- complex number classes.
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
// 2006, 2007, 2008 // 2006, 2007, 2008, 2009
// 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
...@@ -53,6 +53,14 @@ ...@@ -53,6 +53,14 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/**
* @defgroup complex_numbers Complex Numbers
* @ingroup numerics
*
* Classes and functions for complex numbers.
* @{
*/
// Forward declarations. // Forward declarations.
template<typename _Tp> class complex; template<typename _Tp> class complex;
template<> class complex<float>; template<> class complex<float>;
...@@ -104,7 +112,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -104,7 +112,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
template<typename _Tp> complex<_Tp> tan(const complex<_Tp>&); template<typename _Tp> complex<_Tp> tan(const complex<_Tp>&);
/// Return complex hyperbolic tangent of @a z. /// Return complex hyperbolic tangent of @a z.
template<typename _Tp> complex<_Tp> tanh(const complex<_Tp>&); template<typename _Tp> complex<_Tp> tanh(const complex<_Tp>&);
//@}
// 26.2.2 Primary template class complex // 26.2.2 Primary template class complex
...@@ -1448,8 +1455,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -1448,8 +1455,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// These bits have to be at the end of this file, so that the // These bits have to be at the end of this file, so that the
// specializations have all been defined. // specializations have all been defined.
// ??? No, they have to be there because of compiler limitation at
// inlining. It suffices that class specializations be defined.
inline inline
complex<float>::complex(const complex<double>& __z) complex<float>::complex(const complex<double>& __z)
: _M_value(__z.__rep()) { } : _M_value(__z.__rep()) { }
...@@ -1483,6 +1488,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -1483,6 +1488,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
#endif #endif
#endif #endif
// @} group complex_numbers
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
......
...@@ -47,6 +47,14 @@ ...@@ -47,6 +47,14 @@
namespace std namespace std
{ {
/**
* @defgroup condition_variables Condition Variables
* @ingroup concurrency
*
* Classes for condition_variable support.
* @{
*/
/// condition_variable /// condition_variable
class condition_variable class condition_variable
{ {
...@@ -211,6 +219,8 @@ namespace std ...@@ -211,6 +219,8 @@ namespace std
native_handle() native_handle()
{ return &_M_cond; } { return &_M_cond; }
}; };
// @} group condition_variables
} }
#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1 #endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
......
// File based streams -*- C++ -*- // File based streams -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
// 2006, 2007, 2008 // 2006, 2007, 2008, 2009
// 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
...@@ -53,6 +53,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -53,6 +53,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// [27.8.1.1] template class basic_filebuf // [27.8.1.1] template class basic_filebuf
/** /**
* @brief The actual work of input and output (for files). * @brief The actual work of input and output (for files).
* @ingroup io
* *
* This class associates both its input and output sequence with an * This class associates both its input and output sequence with an
* external disk file, and maintains a joint file position for both * external disk file, and maintains a joint file position for both
...@@ -392,6 +393,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -392,6 +393,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// [27.8.1.5] Template class basic_ifstream // [27.8.1.5] Template class basic_ifstream
/** /**
* @brief Controlling input for files. * @brief Controlling input for files.
* @ingroup io
* *
* This class supports reading from named files, using the inherited * This class supports reading from named files, using the inherited
* functions from std::basic_istream. To control the associated * functions from std::basic_istream. To control the associated
...@@ -520,6 +522,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -520,6 +522,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// [27.8.1.8] Template class basic_ofstream // [27.8.1.8] Template class basic_ofstream
/** /**
* @brief Controlling output for files. * @brief Controlling output for files.
* @ingroup io
* *
* This class supports reading from named files, using the inherited * This class supports reading from named files, using the inherited
* functions from std::basic_ostream. To control the associated * functions from std::basic_ostream. To control the associated
...@@ -651,6 +654,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -651,6 +654,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// [27.8.1.11] Template class basic_fstream // [27.8.1.11] Template class basic_fstream
/** /**
* @brief Controlling input and output for files. * @brief Controlling input and output for files.
* @ingroup io
* *
* This class supports reading from and writing to named files, using * This class supports reading from and writing to named files, using
* the inherited functions from std::basic_iostream. To control the * the inherited functions from std::basic_iostream. To control the
......
// Input streams -*- C++ -*- // Input streams -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
// 2006, 2007, 2008 // 2006, 2007, 2008, 2009
// 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
...@@ -50,6 +50,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -50,6 +50,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// [27.6.1.1] Template class basic_istream // [27.6.1.1] Template class basic_istream
/** /**
* @brief Controlling input. * @brief Controlling input.
* @ingroup io
* *
* This is the base class for all input streams. It provides text * This is the base class for all input streams. It provides text
* formatting of all builtin types, and communicates with any class * formatting of all builtin types, and communicates with any class
...@@ -758,6 +759,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -758,6 +759,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// 27.6.1.5 Template class basic_iostream // 27.6.1.5 Template class basic_iostream
/** /**
* @brief Merging istream and ostream capabilities. * @brief Merging istream and ostream capabilities.
* @ingroup io
* *
* This class multiply inherits from the input and output stream classes * This class multiply inherits from the input and output stream classes
* simply to provide a single interface. * simply to provide a single interface.
......
// <memory> -*- C++ -*- // <memory> -*- C++ -*-
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
// 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
...@@ -95,4 +95,11 @@ ...@@ -95,4 +95,11 @@
# include <backward/auto_ptr.h> # include <backward/auto_ptr.h>
#endif #endif
/**
* @defgroup memory Memory
* @ingroup utilities
*
* Components for memory allocation, deallocation, and management.
*/
#endif /* _GLIBCXX_MEMORY */ #endif /* _GLIBCXX_MEMORY */
...@@ -56,6 +56,14 @@ ...@@ -56,6 +56,14 @@
namespace std namespace std
{ {
/**
* @defgroup mutexes Mutexes
* @ingroup concurrency
*
* Classes for mutex support.
* @{
*/
/// mutex /// mutex
class mutex class mutex
{ {
...@@ -383,7 +391,11 @@ namespace std ...@@ -383,7 +391,11 @@ namespace std
extern const try_to_lock_t try_to_lock; extern const try_to_lock_t try_to_lock;
extern const adopt_lock_t adopt_lock; extern const adopt_lock_t adopt_lock;
/// Thrown to indicate errors with lock operations. /**
* @brief Thrown to indicate errors with lock operations.
*
* @ingroup exceptions
*/
class lock_error : public exception class lock_error : public exception
{ {
public: public:
...@@ -682,6 +694,7 @@ namespace std ...@@ -682,6 +694,7 @@ namespace std
return __try_lock_impl<0>::__do_try_lock(__locks); return __try_lock_impl<0>::__do_try_lock(__locks);
} }
/// lock
template<typename _L1, typename _L2, typename ..._L3> template<typename _L1, typename _L2, typename ..._L3>
void void
lock(_L1&, _L2&, _L3&...); lock(_L1&, _L2&, _L3&...);
...@@ -727,6 +740,7 @@ namespace std ...@@ -727,6 +740,7 @@ namespace std
extern "C" void __once_proxy(); extern "C" void __once_proxy();
/// call_once
template<typename _Callable, typename... _Args> template<typename _Callable, typename... _Args>
void void
call_once(once_flag& __once, _Callable __f, _Args&&... __args) call_once(once_flag& __once, _Callable __f, _Args&&... __args)
...@@ -751,6 +765,8 @@ namespace std ...@@ -751,6 +765,8 @@ namespace std
if (__e) if (__e)
__throw_system_error(__e); __throw_system_error(__e);
} }
// @} group mutexes
} }
#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1 #endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
......
// Output streams -*- C++ -*- // Output streams -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
// 2006, 2007, 2008 // 2006, 2007, 2008, 2009
// 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
...@@ -50,6 +50,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -50,6 +50,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// [27.6.2.1] Template class basic_ostream // [27.6.2.1] Template class basic_ostream
/** /**
* @brief Controlling output. * @brief Controlling output.
* @ingroup io
* *
* This is the base class for all output streams. It provides text * This is the base class for all output streams. It provides text
* formatting of all builtin types, and communicates with any class * formatting of all builtin types, and communicates with any class
......
// <ratio> -*- C++ -*- // ratio -*- C++ -*-
// Copyright (C) 2008 Free Software Foundation, Inc. // Copyright (C) 2008, 2009 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
...@@ -47,6 +47,14 @@ ...@@ -47,6 +47,14 @@
namespace std namespace std
{ {
/**
* @defgroup ratio Rational Arithmetic
* @ingroup utilities
*
* Compile time representation of fininte rational numbers.
* @{
*/
template<intmax_t _Pn> template<intmax_t _Pn>
struct __static_sign struct __static_sign
: integral_constant<intmax_t, (_Pn < 0) ? -1 : 1> : integral_constant<intmax_t, (_Pn < 0) ? -1 : 1>
...@@ -132,7 +140,7 @@ namespace std ...@@ -132,7 +140,7 @@ namespace std
/** /**
* @brief Provides compile-time rational arithmetic. * @brief Provides compile-time rational arithmetic.
* *
* This class template represents any finite rational number with a * This class template represents any finite rational number with a
* numerator and denominator representable by compile-time constants of * numerator and denominator representable by compile-time constants of
* type intmax_t. The ratio is simplified when instantiated. * type intmax_t. The ratio is simplified when instantiated.
...@@ -289,6 +297,8 @@ namespace std ...@@ -289,6 +297,8 @@ namespace std
typedef ratio< 1000000000000, 1> tera; typedef ratio< 1000000000000, 1> tera;
typedef ratio< 1000000000000000, 1> peta; typedef ratio< 1000000000000000, 1> peta;
typedef ratio< 1000000000000000000, 1> exa; typedef ratio< 1000000000000000000, 1> exa;
// @} group ratio
} }
#endif //_GLIBCXX_USE_C99_STDINT_TR1 #endif //_GLIBCXX_USE_C99_STDINT_TR1
......
// String based streams -*- C++ -*- // String based streams -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
// 2006, 2008 Free Software Foundation, Inc. // 2006, 2008, 2009 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
...@@ -49,6 +49,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -49,6 +49,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// [27.7.1] template class basic_stringbuf // [27.7.1] template class basic_stringbuf
/** /**
* @brief The actual work of input and output (for std::string). * @brief The actual work of input and output (for std::string).
* @ingroup io
* *
* This class associates either or both of its input and output sequences * This class associates either or both of its input and output sequences
* with a sequence of characters, which can be initialized from, or made * with a sequence of characters, which can be initialized from, or made
...@@ -249,6 +250,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -249,6 +250,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// [27.7.2] Template class basic_istringstream // [27.7.2] Template class basic_istringstream
/** /**
* @brief Controlling input for std::string. * @brief Controlling input for std::string.
* @ingroup io
* *
* This class supports reading from objects of type std::basic_string, * This class supports reading from objects of type std::basic_string,
* using the inherited functions from std::basic_istream. To control * using the inherited functions from std::basic_istream. To control
...@@ -358,6 +360,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -358,6 +360,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// [27.7.3] Template class basic_ostringstream // [27.7.3] Template class basic_ostringstream
/** /**
* @brief Controlling output for std::string. * @brief Controlling output for std::string.
* @ingroup io
* *
* This class supports writing to objects of type std::basic_string, * This class supports writing to objects of type std::basic_string,
* using the inherited functions from std::basic_ostream. To control * using the inherited functions from std::basic_ostream. To control
...@@ -467,6 +470,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -467,6 +470,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// [27.7.4] Template class basic_stringstream // [27.7.4] Template class basic_stringstream
/** /**
* @brief Controlling input and output for std::string. * @brief Controlling input and output for std::string.
* @ingroup io
* *
* This class supports reading from and writing to objects of type * This class supports reading from and writing to objects of type
* std::basic_string, using the inherited functions from * std::basic_string, using the inherited functions from
......
// Standard exception classes -*- C++ -*- // Standard exception classes -*- C++ -*-
// Copyright (C) 2001, 2002, 2005, 2007 Free Software Foundation, Inc. // Copyright (C) 2001, 2002, 2005, 2007, 2009 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
...@@ -45,6 +45,11 @@ ...@@ -45,6 +45,11 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/**
* @addtogroup exceptions
* @{
*/
/** Logic errors represent problems in the internal logic of a program; /** Logic errors represent problems in the internal logic of a program;
* in theory, these are preventable, and even detectable before the * in theory, these are preventable, and even detectable before the
* program runs (e.g., violations of class invariants). * program runs (e.g., violations of class invariants).
...@@ -143,6 +148,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -143,6 +148,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
explicit underflow_error(const string& __arg); explicit underflow_error(const string& __arg);
}; };
// @} group exceptions
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
#endif /* _GLIBCXX_STDEXCEPT */ #endif /* _GLIBCXX_STDEXCEPT */
...@@ -318,7 +318,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -318,7 +318,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
{ return !(__lhs == __rhs); } { return !(__lhs == __rhs); }
/// Thrown to indicate error code of underlying system. /**
* @brief Thrown to indicate error code of underlying system.
*
* @ingroup exceptions
*/
class system_error : public std::runtime_error class system_error : public std::runtime_error
{ {
private: private:
......
...@@ -53,6 +53,14 @@ ...@@ -53,6 +53,14 @@
namespace std namespace std
{ {
/**
* @defgroup threads Threads
* @ingroup concurrency
*
* Classes for thread support.
* @{
*/
/// thread /// thread
class thread class thread
{ {
...@@ -225,7 +233,10 @@ namespace std ...@@ -225,7 +233,10 @@ namespace std
return __out << __id._M_thread; return __out << __id._M_thread;
} }
// 30.2.2 Namespace this_thread. /** @namespace std::this_thread
* @brief ISO C++ 0x entities sub namespace for thread.
* 30.2.2 Namespace this_thread.
*/
namespace this_thread namespace this_thread
{ {
/// get_id /// get_id
...@@ -267,6 +278,8 @@ namespace std ...@@ -267,6 +278,8 @@ namespace std
} }
#endif #endif
} }
// @} group threads
} }
#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1 #endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
......
// <type_traits> -*- C++ -*- // C++0x type_traits -*- C++ -*-
// Copyright (C) 2007, 2008 Free Software Foundation, Inc. // Copyright (C) 2007, 2008, 2009 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
...@@ -62,6 +62,10 @@ ...@@ -62,6 +62,10 @@
namespace std namespace std
{ {
/** @addtogroup metaprogramming
* @{
*/
// Primary classification traits. // Primary classification traits.
/// is_lvalue_reference /// is_lvalue_reference
...@@ -314,25 +318,26 @@ namespace std ...@@ -314,25 +318,26 @@ namespace std
// Define a nested type if some predicate holds. // Define a nested type if some predicate holds.
/// Primary template. // Primary template.
/// enable_if
template<bool, typename _Tp = void> template<bool, typename _Tp = void>
struct enable_if struct enable_if
{ }; { };
/// Partial specialization for true. // 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; };
// A conditional expression, but for types. // A conditional expression, but for types. If true, first, if false, second.
// If true, first, if false, second. // Primary template.
/// Primary template. /// conditional
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. // 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; };
...@@ -471,7 +476,8 @@ namespace std ...@@ -471,7 +476,8 @@ namespace std
// Given an integral/enum type, return the corresponding unsigned // Given an integral/enum type, return the corresponding unsigned
// integer type. // integer type.
/// Primary template. // Primary template.
/// make_unsigned
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; };
...@@ -549,7 +555,8 @@ namespace std ...@@ -549,7 +555,8 @@ namespace std
// Given an integral/enum type, return the corresponding signed // Given an integral/enum type, return the corresponding signed
// integer type. // integer type.
/// Primary template. // Primary template.
/// make_signed
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; };
...@@ -558,6 +565,7 @@ namespace std ...@@ -558,6 +565,7 @@ namespace std
template<> template<>
struct make_signed<bool>; struct make_signed<bool>;
/// common_type
template<typename... _Tp> template<typename... _Tp>
struct common_type; struct common_type;
...@@ -592,6 +600,8 @@ namespace std ...@@ -592,6 +600,8 @@ namespace std
typedef typename typedef typename
common_type<typename common_type<_Tp, _Up>::type, _Vp...>::type type; common_type<typename common_type<_Tp, _Up>::type, _Vp...>::type type;
}; };
// @} group metaprogramming
} }
#endif // __GXX_EXPERIMENTAL_CXX0X__ #endif // __GXX_EXPERIMENTAL_CXX0X__
......
// The template and inlines for the -*- C++ -*- valarray class. // The template and inlines for the -*- C++ -*- valarray class.
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
// 2006, 2007 // 2006, 2007, 2009
// 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
...@@ -95,6 +95,14 @@ _GLIBCXX_END_NAMESPACE ...@@ -95,6 +95,14 @@ _GLIBCXX_END_NAMESPACE
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @defgroup numeric_arrays Numeric Arrays
* @ingroup numerics
*
* Classes and functions for representing and manipulating arrays of elements.
* @{
*/
/**
* @brief Smart array designed to support numeric processing. * @brief Smart array designed to support numeric processing.
* *
* A valarray is an array that provides constraints intended to allow for * A valarray is an array that provides constraints intended to allow for
...@@ -552,6 +560,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -552,6 +560,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
return _M_data[__i]; return _M_data[__i];
} }
// @} group numeric_arrays
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
#include <bits/valarray_after.h> #include <bits/valarray_after.h>
...@@ -563,6 +573,11 @@ _GLIBCXX_END_NAMESPACE ...@@ -563,6 +573,11 @@ _GLIBCXX_END_NAMESPACE
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/**
* @addtogroup numeric_arrays
* @{
*/
template<typename _Tp> template<typename _Tp>
inline inline
valarray<_Tp>::valarray() : _M_size(0), _M_data(0) {} valarray<_Tp>::valarray() : _M_size(0), _M_data(0) {}
...@@ -1069,6 +1084,8 @@ _DEFINE_BINARY_OPERATOR(>=, __greater_equal) ...@@ -1069,6 +1084,8 @@ _DEFINE_BINARY_OPERATOR(>=, __greater_equal)
#undef _DEFINE_BINARY_OPERATOR #undef _DEFINE_BINARY_OPERATOR
// @} group numeric_arrays
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
#endif /* _GLIBCXX_VALARRAY */ #endif /* _GLIBCXX_VALARRAY */
...@@ -39,7 +39,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -39,7 +39,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
/** /**
* @brief A standard container for storing a fixed size sequence of elements. * @brief A standard container for storing a fixed size sequence of elements.
* *
* @ingroup containers
* @ingroup sequences * @ingroup sequences
* *
* Meets the requirements of a <a href="tables.html#65">container</a>, a * Meets the requirements of a <a href="tables.html#65">container</a>, a
......
// TR1 complex -*- C++ -*- // TR1 complex -*- C++ -*-
// Copyright (C) 2007, 2008 Free Software Foundation, Inc. // Copyright (C) 2007, 2008, 2009 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,6 +36,11 @@ namespace std ...@@ -36,6 +36,11 @@ namespace std
{ {
_GLIBCXX_BEGIN_NAMESPACE_TR1 _GLIBCXX_BEGIN_NAMESPACE_TR1
/**
* @addtogroup complex_numbers
* @{
*/
// Forward declarations. // Forward declarations.
template<typename _Tp> std::complex<_Tp> acos(const std::complex<_Tp>&); template<typename _Tp> std::complex<_Tp> acos(const std::complex<_Tp>&);
template<typename _Tp> std::complex<_Tp> asin(const std::complex<_Tp>&); template<typename _Tp> std::complex<_Tp> asin(const std::complex<_Tp>&);
...@@ -51,9 +56,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -51,9 +56,6 @@ _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
/// acos(__z) [8.1.2].
// Effects: Behaves the same as C99 function cacos, defined
// in subclause 7.3.5.1.
template<typename _Tp> template<typename _Tp>
inline std::complex<_Tp> inline std::complex<_Tp>
__complex_acos(const std::complex<_Tp>& __z) __complex_acos(const std::complex<_Tp>& __z)
...@@ -81,15 +83,15 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -81,15 +83,15 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
acos(const std::complex<_Tp>& __z) acos(const std::complex<_Tp>& __z)
{ return __complex_acos(__z.__rep()); } { return __complex_acos(__z.__rep()); }
#else #else
/// acos(__z) [8.1.2].
// Effects: Behaves the same as C99 function cacos, defined
// in subclause 7.3.5.1.
template<typename _Tp> template<typename _Tp>
inline std::complex<_Tp> inline std::complex<_Tp>
acos(const std::complex<_Tp>& __z) acos(const std::complex<_Tp>& __z)
{ return __complex_acos(__z); } { return __complex_acos(__z); }
#endif #endif
/// asin(__z) [8.1.3].
// Effects: Behaves the same as C99 function casin, defined
// in subclause 7.3.5.2.
template<typename _Tp> template<typename _Tp>
inline std::complex<_Tp> inline std::complex<_Tp>
__complex_asin(const std::complex<_Tp>& __z) __complex_asin(const std::complex<_Tp>& __z)
...@@ -117,15 +119,15 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -117,15 +119,15 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
asin(const std::complex<_Tp>& __z) asin(const std::complex<_Tp>& __z)
{ return __complex_asin(__z.__rep()); } { return __complex_asin(__z.__rep()); }
#else #else
/// asin(__z) [8.1.3].
// Effects: Behaves the same as C99 function casin, defined
// in subclause 7.3.5.2.
template<typename _Tp> template<typename _Tp>
inline std::complex<_Tp> inline std::complex<_Tp>
asin(const std::complex<_Tp>& __z) asin(const std::complex<_Tp>& __z)
{ return __complex_asin(__z); } { return __complex_asin(__z); }
#endif #endif
/// atan(__z) [8.1.4].
// Effects: Behaves the same as C99 function catan, defined
// in subclause 7.3.5.3.
template<typename _Tp> template<typename _Tp>
std::complex<_Tp> std::complex<_Tp>
__complex_atan(const std::complex<_Tp>& __z) __complex_atan(const std::complex<_Tp>& __z)
...@@ -161,15 +163,15 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -161,15 +163,15 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
atan(const std::complex<_Tp>& __z) atan(const std::complex<_Tp>& __z)
{ return __complex_atan(__z.__rep()); } { return __complex_atan(__z.__rep()); }
#else #else
/// atan(__z) [8.1.4].
// Effects: Behaves the same as C99 function catan, defined
// in subclause 7.3.5.3.
template<typename _Tp> template<typename _Tp>
inline std::complex<_Tp> inline std::complex<_Tp>
atan(const std::complex<_Tp>& __z) atan(const std::complex<_Tp>& __z)
{ return __complex_atan(__z); } { return __complex_atan(__z); }
#endif #endif
/// acosh(__z) [8.1.5].
// Effects: Behaves the same as C99 function cacosh, defined
// in subclause 7.3.6.1.
template<typename _Tp> template<typename _Tp>
std::complex<_Tp> std::complex<_Tp>
__complex_acosh(const std::complex<_Tp>& __z) __complex_acosh(const std::complex<_Tp>& __z)
...@@ -200,15 +202,15 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -200,15 +202,15 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
acosh(const std::complex<_Tp>& __z) acosh(const std::complex<_Tp>& __z)
{ return __complex_acosh(__z.__rep()); } { return __complex_acosh(__z.__rep()); }
#else #else
/// acosh(__z) [8.1.5].
// Effects: Behaves the same as C99 function cacosh, defined
// in subclause 7.3.6.1.
template<typename _Tp> template<typename _Tp>
inline std::complex<_Tp> inline std::complex<_Tp>
acosh(const std::complex<_Tp>& __z) acosh(const std::complex<_Tp>& __z)
{ return __complex_acosh(__z); } { return __complex_acosh(__z); }
#endif #endif
/// asinh(__z) [8.1.6].
// Effects: Behaves the same as C99 function casin, defined
// in subclause 7.3.6.2.
template<typename _Tp> template<typename _Tp>
std::complex<_Tp> std::complex<_Tp>
__complex_asinh(const std::complex<_Tp>& __z) __complex_asinh(const std::complex<_Tp>& __z)
...@@ -239,15 +241,15 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -239,15 +241,15 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
asinh(const std::complex<_Tp>& __z) asinh(const std::complex<_Tp>& __z)
{ return __complex_asinh(__z.__rep()); } { return __complex_asinh(__z.__rep()); }
#else #else
/// asinh(__z) [8.1.6].
// Effects: Behaves the same as C99 function casin, defined
// in subclause 7.3.6.2.
template<typename _Tp> template<typename _Tp>
inline std::complex<_Tp> inline std::complex<_Tp>
asinh(const std::complex<_Tp>& __z) asinh(const std::complex<_Tp>& __z)
{ return __complex_asinh(__z); } { return __complex_asinh(__z); }
#endif #endif
/// atanh(__z) [8.1.7].
// Effects: Behaves the same as C99 function catanh, defined
// in subclause 7.3.6.3.
template<typename _Tp> template<typename _Tp>
std::complex<_Tp> std::complex<_Tp>
__complex_atanh(const std::complex<_Tp>& __z) __complex_atanh(const std::complex<_Tp>& __z)
...@@ -283,21 +285,24 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -283,21 +285,24 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
atanh(const std::complex<_Tp>& __z) atanh(const std::complex<_Tp>& __z)
{ return __complex_atanh(__z.__rep()); } { return __complex_atanh(__z.__rep()); }
#else #else
/// atanh(__z) [8.1.7].
// Effects: Behaves the same as C99 function catanh, defined
// in subclause 7.3.6.3.
template<typename _Tp> template<typename _Tp>
inline std::complex<_Tp> inline std::complex<_Tp>
atanh(const std::complex<_Tp>& __z) atanh(const std::complex<_Tp>& __z)
{ return __complex_atanh(__z); } { return __complex_atanh(__z); }
#endif #endif
/// fabs(__z) [8.1.8].
// Effects: Behaves the same as C99 function cabs, defined
// in subclause 7.3.8.1.
template<typename _Tp> template<typename _Tp>
#ifdef _GLIBCXX_INCLUDE_AS_CXX0X #ifdef _GLIBCXX_INCLUDE_AS_CXX0X
inline _Tp inline _Tp
#else #else
inline std::complex<_Tp> inline std::complex<_Tp>
#endif #endif
/// fabs(__z) [8.1.8].
// Effects: Behaves the same as C99 function cabs, defined
// in subclause 7.3.8.1.
fabs(const std::complex<_Tp>& __z) fabs(const std::complex<_Tp>& __z)
{ return std::abs(__z); } { return std::abs(__z); }
...@@ -364,5 +369,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -364,5 +369,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
std::complex<__type>(__y)); std::complex<__type>(__y));
} }
// @} group complex_numbers
_GLIBCXX_END_NAMESPACE_TR1 _GLIBCXX_END_NAMESPACE_TR1
} }
// TR1 functional header -*- C++ -*- // TR1 functional header -*- C++ -*-
// Copyright (C) 2007, 2008 Free Software Foundation, Inc. // Copyright (C) 2007, 2008, 2009 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
...@@ -827,9 +827,13 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -827,9 +827,13 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
/// The type of placeholder objects defined by libstdc++. /// The type of placeholder objects defined by libstdc++.
template<int _Num> struct _Placeholder { }; template<int _Num> struct _Placeholder { };
// Define a large number of placeholders. There is no way to /** @namespace std::placeholders
// simplify this with variadic templates, because we're introducing * @brief ISO C++ 0x entities sub namespace for functional.
// unique names for each. *
* Define a large number of placeholders. There is no way to
* simplify this with variadic templates, because we're introducing
* unique names for each.
*/
namespace placeholders namespace placeholders
{ {
namespace namespace
......
...@@ -40,11 +40,14 @@ namespace std ...@@ -40,11 +40,14 @@ namespace std
_GLIBCXX_BEGIN_NAMESPACE_TR1 _GLIBCXX_BEGIN_NAMESPACE_TR1
/** /**
* @addtogroup tr1_regex Regular Expressions * @defgroup tr1_regex Regular Expressions
* A facility for performing regular expression pattern matching. * A facility for performing regular expression pattern matching.
*/ */
//@{ //@{
/** @namespace std::regex_constants
* @brief ISO C++ 0x entities sub namespace for regex.
*/
namespace regex_constants namespace regex_constants
{ {
/** /**
...@@ -387,9 +390,10 @@ namespace regex_constants ...@@ -387,9 +390,10 @@ namespace regex_constants
// [7.8] Class regex_error // [7.8] Class regex_error
/** /**
* @brief A regular expression exception class. * @brief A regular expression exception class.
* @ingroup exceptions
* *
* The regular expression library throws objects of this class on error. * The regular expression library throws objects of this class on error.
*/ */
class regex_error class regex_error
: public std::runtime_error : public std::runtime_error
...@@ -2703,7 +2707,7 @@ namespace regex_constants ...@@ -2703,7 +2707,7 @@ namespace regex_constants
typedef regex_token_iterator<wstring::const_iterator> wsregex_token_iterator; typedef regex_token_iterator<wstring::const_iterator> wsregex_token_iterator;
#endif #endif
//@} // group tr1_regex //@}
_GLIBCXX_END_NAMESPACE_TR1 _GLIBCXX_END_NAMESPACE_TR1
} }
// TR1 type_traits -*- C++ -*- // TR1 type_traits -*- C++ -*-
// Copyright (C) 2007, 2008 Free Software Foundation, Inc. // Copyright (C) 2007, 2008, 2009 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,6 +36,14 @@ namespace std ...@@ -36,6 +36,14 @@ namespace std
{ {
_GLIBCXX_BEGIN_NAMESPACE_TR1 _GLIBCXX_BEGIN_NAMESPACE_TR1
/**
* @defgroup metaprogramming Type Traits
* @ingroup utilities
*
* Compile time type transformation and information.
* @{
*/
// For use in __is_convertible_simple. // For use in __is_convertible_simple.
struct __sfinae_types struct __sfinae_types
{ {
...@@ -57,7 +65,9 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -57,7 +65,9 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
struct _Trait<_Type> \ struct _Trait<_Type> \
: public integral_constant<bool, _Value> { }; : public integral_constant<bool, _Value> { };
/// helper classes [4.3]. // helper classes [4.3].
/// integral_constant
template<typename _Tp, _Tp __v> template<typename _Tp, _Tp __v>
struct integral_constant struct integral_constant
{ {
...@@ -75,6 +85,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -75,6 +85,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
template<typename _Tp, _Tp __v> template<typename _Tp, _Tp __v>
const _Tp integral_constant<_Tp, __v>::value; const _Tp integral_constant<_Tp, __v>::value;
/// remove_cv
template<typename> template<typename>
struct remove_cv; struct remove_cv;
...@@ -83,7 +94,9 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -83,7 +94,9 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
: public false_type { }; : public false_type { };
_DEFINE_SPEC(0, __is_void_helper, void, true) _DEFINE_SPEC(0, __is_void_helper, void, true)
/// primary type categories [4.5.1]. // primary type categories [4.5.1].
/// is_void
template<typename _Tp> template<typename _Tp>
struct is_void struct is_void
: public integral_constant<bool, (__is_void_helper<typename : public integral_constant<bool, (__is_void_helper<typename
...@@ -230,7 +243,9 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -230,7 +243,9 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
remove_cv<_Tp>::type>::value)> remove_cv<_Tp>::type>::value)>
{ }; { };
/// composite type traits [4.5.2]. // composite type traits [4.5.2].
/// is_arithmetic
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
...@@ -278,12 +293,12 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -278,12 +293,12 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
|| is_member_function_pointer<_Tp>::value)> || is_member_function_pointer<_Tp>::value)>
{ }; { };
/// type properties [4.5.3]. // type properties [4.5.3].
/// is_const
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 { };
...@@ -358,7 +373,9 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -358,7 +373,9 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
_Uint - 1>::value> _Uint - 1>::value>
{ }; { };
/// relationships between types [4.6]. // relationships between types [4.6].
/// is_same
template<typename, typename> template<typename, typename>
struct is_same struct is_same
: public false_type { }; : public false_type { };
...@@ -367,7 +384,9 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -367,7 +384,9 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
struct is_same<_Tp, _Tp> struct is_same<_Tp, _Tp>
: public true_type { }; : public true_type { };
/// const-volatile modifications [4.7.1]. // const-volatile modifications [4.7.1].
/// remove_const
template<typename _Tp> template<typename _Tp>
struct remove_const struct remove_const
{ typedef _Tp type; }; { typedef _Tp type; };
...@@ -411,7 +430,9 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -411,7 +430,9 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
add_const<typename add_volatile<_Tp>::type>::type type; add_const<typename add_volatile<_Tp>::type>::type type;
}; };
/// array modifications [4.7.3]. // array modifications [4.7.3].
/// remove_extent
template<typename _Tp> template<typename _Tp>
struct remove_extent struct remove_extent
{ typedef _Tp type; }; { typedef _Tp type; };
...@@ -437,7 +458,8 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -437,7 +458,8 @@ _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; };
/// pointer modifications [4.7.4]. // pointer modifications [4.7.4].
template<typename _Tp, typename> template<typename _Tp, typename>
struct __remove_pointer_helper struct __remove_pointer_helper
{ typedef _Tp type; }; { typedef _Tp type; };
...@@ -465,5 +487,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -465,5 +487,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
#undef _DEFINE_SPEC_2_HELPER #undef _DEFINE_SPEC_2_HELPER
#undef _DEFINE_SPEC #undef _DEFINE_SPEC
// @} group metaprogramming
_GLIBCXX_END_NAMESPACE_TR1 _GLIBCXX_END_NAMESPACE_TR1
} }
...@@ -173,7 +173,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -173,7 +173,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
* at most one of each key value) that associates values of another type * at most one of each key value) that associates values of another type
* with the keys. * with the keys.
* *
* @ingroup containers
* @ingroup unordered_associative_containers * @ingroup unordered_associative_containers
* *
* Meets the requirements of a <a href="tables.html#65">container</a>, and * Meets the requirements of a <a href="tables.html#65">container</a>, and
...@@ -256,7 +255,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -256,7 +255,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
* (possibly containing multiple of each key value) that associates * (possibly containing multiple of each key value) that associates
* values of another type with the keys. * values of another type with the keys.
* *
* @ingroup containers
* @ingroup unordered_associative_containers * @ingroup unordered_associative_containers
* *
* Meets the requirements of a <a href="tables.html#65">container</a>, and * Meets the requirements of a <a href="tables.html#65">container</a>, and
......
...@@ -169,7 +169,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -169,7 +169,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
* at most one of each key value) in which the elements' keys are * at most one of each key value) in which the elements' keys are
* the elements themselves. * the elements themselves.
* *
* @ingroup containers
* @ingroup unordered_associative_containers * @ingroup unordered_associative_containers
* *
* Meets the requirements of a <a href="tables.html#65">container</a>, and * Meets the requirements of a <a href="tables.html#65">container</a>, and
...@@ -249,7 +248,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -249,7 +248,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
* (possibly containing multiple of each key value) in which the * (possibly containing multiple of each key value) in which the
* elements' keys are the elements themselves. * elements' keys are the elements themselves.
* *
* @ingroup containers
* @ingroup unordered_associative_containers * @ingroup unordered_associative_containers
* *
* Meets the requirements of a <a href="tables.html#65">container</a>, and * Meets the requirements of a <a href="tables.html#65">container</a>, and
......
// cxxabi.h subset for inclusion by other library headers -*- C++ -*- // cxxabi.h subset for inclusion by other library headers -*- C++ -*-
// Copyright (C) 2007 Free Software Foundation, Inc. // Copyright (C) 2007, 2009 Free Software Foundation, Inc.
// //
// This file is part of GCC. // This file is part of GCC.
// //
...@@ -36,8 +36,13 @@ ...@@ -36,8 +36,13 @@
#ifdef __cplusplus #ifdef __cplusplus
namespace __cxxabiv1 namespace __cxxabiv1
{ {
// A magic placeholder class that can be caught by reference /**
// to recognize forced unwinding. * @brief Thrown as part of forced unwinding.
* @ingroup exceptions
*
* A magic placeholder class that can be caught by reference to
* recognize forced unwinding.
*/
class __forced_unwind class __forced_unwind
{ {
virtual ~__forced_unwind() throw(); virtual ~__forced_unwind() throw();
......
// new abi support -*- C++ -*- // new abi support -*- C++ -*-
// Copyright (C) 2000, 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc. // Copyright (C) 2000, 2002, 2003, 2004, 2006, 2007, 2009
// Free Software Foundation, Inc.
// //
// This file is part of GCC. // This file is part of GCC.
// //
...@@ -148,7 +149,47 @@ namespace __cxxabiv1 ...@@ -148,7 +149,47 @@ namespace __cxxabiv1
int int
__cxa_finalize(void*); __cxa_finalize(void*);
// Demangling routines.
/**
* @brief Demangling routine.
* ABI-mandated entry point in the C++ runtime library for demangling.
*
* @param __mangled_name A NUL-terminated character string
* containing the name to be demangled.
*
* @param __output_buffer A region of memory, allocated with
* malloc, of @a *__length bytes, into which the demangled name is
* stored. If @a __output_buffer is not long enough, it is
* expanded using realloc. @a __output_buffer may instead be NULL;
* in that case, the demangled name is placed in a region of memory
* allocated with malloc.
*
* @param __length If @a __length is non-NULL, the length of the
* buffer containing the demangled name is placed in @a *__length.
*
* @param __status @a *__status is set to one of the following values:
* 0: The demangling operation succeeded.
* -1: A memory allocation failiure occurred.
* -2: @a mangled_name is not a valid name under the C++ ABI mangling rules.
* -3: One of the arguments is invalid.
*
* @return A pointer to the start of the NUL-terminated demangled
* name, or NULL if the demangling fails. The caller is
* responsible for deallocating this memory using @c free.
*
* The demangling is performed using the C++ ABI mangling rules,
* with GNU extensions. For example, this function is used in
* __gnu_cxx::__verbose_terminate_handler.
*
* See http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt12ch39.html
* for other examples of use.
*
* @note The same demangling functionality is available via
* libiberty (@c <libiberty/demangle.h> and @c libiberty.a) in GCC
* 3.1 and later, but that requires explicit installation (@c
* --enable-install-libiberty) and uses a different API, although
* the ABI is unchanged.
*/
char* char*
__cxa_demangle(const char* __mangled_name, char* __output_buffer, __cxa_demangle(const char* __mangled_name, char* __output_buffer,
size_t* __length, int* __status); size_t* __length, int* __status);
...@@ -543,7 +584,26 @@ namespace __cxxabiv1 ...@@ -543,7 +584,26 @@ namespace __cxxabiv1
} // namespace __cxxabiv1 } // namespace __cxxabiv1
// User programs should use the alias `abi'. /** @namespace abi
* @brief The cross-vendor C++ Application Binary Interface. A
* namespace alias to __cxxabiv1, but user programs should use the
* alias `abi'.
*
* A brief overview of an ABI is given in the libstdc++ FAQ, question
* 5.8 (you may have a copy of the FAQ locally, or you can view the online
* version at http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#5_8).
*
* GCC subscribes to a cross-vendor ABI for C++, sometimes
* called the IA64 ABI because it happens to be the native ABI for that
* platform. It is summarized at http://www.codesourcery.com/cxx-abi/
* along with the current specification.
*
* For users of GCC greater than or equal to 3.x, entry points are
* available in <cxxabi.h>, which notes, <em>"It is not normally
* necessary for user programs to include this header, or use the
* entry points directly. However, this header is available should
* that be needed."</em>
*/
namespace abi = __cxxabiv1; namespace abi = __cxxabiv1;
#endif // __cplusplus #endif // __cplusplus
......
// Exception Handling support header for -*- C++ -*- // Exception Handling support header for -*- C++ -*-
// Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, // Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
// 2004, 2005, 2006, 2007, 2008 // 2004, 2005, 2006, 2007, 2008, 2009
// Free Software Foundation // Free Software Foundation
// //
// This file is part of GCC. // This file is part of GCC.
...@@ -46,6 +46,14 @@ extern "C++" { ...@@ -46,6 +46,14 @@ extern "C++" {
namespace std namespace std
{ {
/** /**
* @defgroup exceptions Exceptions
* @ingroup diagnostics
*
* Classes and functions for reporting errors via exception classes.
* @{
*/
/**
* @brief Base class for all library exceptions. * @brief Base class for all library exceptions.
* *
* This is the base class for all exceptions thrown by the standard * This is the base class for all exceptions thrown by the standard
...@@ -111,21 +119,28 @@ namespace std ...@@ -111,21 +119,28 @@ namespace std
*/ */
bool uncaught_exception() throw(); bool uncaught_exception() throw();
// @} group exceptions
} // namespace std } // namespace std
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
/** A replacement for the standard terminate_handler which prints more /**
information about the terminating exception (if any) on stderr. Call * @brief A replacement for the standard terminate_handler which
@code * prints more information about the terminating exception (if any)
std::set_terminate (__gnu_cxx::__verbose_terminate_handler) * on stderr.
@endcode *
to use. For more info, see * @ingroup exceptions
http://gcc.gnu.org/onlinedocs/libstdc++/19_diagnostics/howto.html#4 *
* Call
In 3.4 and later, this is on by default. * @code
*/ * std::set_terminate(__gnu_cxx::__verbose_terminate_handler)
void __verbose_terminate_handler (); * @endcode
* to use. For more info, see
* http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt02ch06s02.html
*
* In 3.4 and later, this is on by default.
*/
void __verbose_terminate_handler();
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
......
...@@ -49,6 +49,11 @@ extern "C++" { ...@@ -49,6 +49,11 @@ extern "C++" {
namespace std namespace std
{ {
/**
* @addtogroup exceptions
* @{
*/
// Hide the free operators from other types // Hide the free operators from other types
namespace __exception_ptr namespace __exception_ptr
{ {
...@@ -70,16 +75,17 @@ namespace std ...@@ -70,16 +75,17 @@ namespace std
void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__)); void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__));
/// Obtain an %exception_ptr pointing to a copy of the supplied object. /// Obtain an %exception_ptr pointing to a copy of the supplied object.
template <class _Ex> template<typename _Ex>
exception_ptr copy_exception(_Ex __ex) throw(); exception_ptr
copy_exception(_Ex __ex) throw();
namespace __exception_ptr namespace __exception_ptr
{ {
bool operator==(const exception_ptr&, bool
const exception_ptr&) throw(); operator==(const exception_ptr&, const exception_ptr&) throw();
bool operator!=(const exception_ptr&,
const exception_ptr&) throw(); bool
operator!=(const exception_ptr&, const exception_ptr&) throw();
class exception_ptr class exception_ptr
{ {
...@@ -109,16 +115,16 @@ namespace std ...@@ -109,16 +115,16 @@ namespace std
#ifdef __GXX_EXPERIMENTAL_CXX0X__ #ifdef __GXX_EXPERIMENTAL_CXX0X__
exception_ptr(exception_ptr&& __o) throw() exception_ptr(exception_ptr&& __o) throw()
: _M_exception_object(__o._M_exception_object) : _M_exception_object(__o._M_exception_object)
{ { __o._M_exception_object = 0; }
__o._M_exception_object = 0;
}
#endif #endif
exception_ptr& operator=(const exception_ptr&) throw(); exception_ptr&
operator=(const exception_ptr&) throw();
#ifdef __GXX_EXPERIMENTAL_CXX0X__ #ifdef __GXX_EXPERIMENTAL_CXX0X__
exception_ptr& operator=(exception_ptr&& __o) throw() exception_ptr&
operator=(exception_ptr&& __o) throw()
{ {
exception_ptr(__o).swap(*this); exception_ptr(__o).swap(*this);
return *this; return *this;
...@@ -127,10 +133,12 @@ namespace std ...@@ -127,10 +133,12 @@ namespace std
~exception_ptr() throw(); ~exception_ptr() throw();
void swap(exception_ptr&) throw(); void
swap(exception_ptr&) throw();
#ifdef __GXX_EXPERIMENTAL_CXX0X__ #ifdef __GXX_EXPERIMENTAL_CXX0X__
void swap(exception_ptr &&__o) throw() void
swap(exception_ptr &&__o) throw()
{ {
void *__tmp = _M_exception_object; void *__tmp = _M_exception_object;
_M_exception_object = __o._M_exception_object; _M_exception_object = __o._M_exception_object;
...@@ -141,28 +149,31 @@ namespace std ...@@ -141,28 +149,31 @@ namespace std
bool operator!() const throw(); bool operator!() const throw();
operator __safe_bool() const throw(); operator __safe_bool() const throw();
friend bool operator==(const exception_ptr&, friend bool
const exception_ptr&) throw(); operator==(const exception_ptr&, const exception_ptr&) throw();
const type_info *__cxa_exception_type() const throw(); const type_info*
__cxa_exception_type() const throw();
}; };
} // namespace __exception_ptr } // namespace __exception_ptr
template <class _Ex> template<typename _Ex>
exception_ptr copy_exception(_Ex __ex) throw() exception_ptr
{ copy_exception(_Ex __ex) throw()
__try {
{ __try
throw __ex; {
} throw __ex;
__catch(...) }
{ __catch(...)
return current_exception (); {
} return current_exception ();
} }
}
// @} group exceptions
} // namespace std } // namespace std
} // extern "C++" } // extern "C++"
......
// The -*- C++ -*- dynamic memory management header. // The -*- C++ -*- dynamic memory management header.
// Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, // Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
// 2003, 2004, 2005, 2006, 2007 // 2003, 2004, 2005, 2006, 2007, 2009
// Free Software Foundation // Free Software Foundation
// This file is part of GCC. // This file is part of GCC.
...@@ -52,6 +52,7 @@ namespace std ...@@ -52,6 +52,7 @@ namespace std
{ {
/** /**
* @brief Exception possibly thrown by @c new. * @brief Exception possibly thrown by @c new.
* @ingroup exceptions
* *
* @c bad_alloc (or classes derived from it) is used to report allocation * @c bad_alloc (or classes derived from it) is used to report allocation
* errors from the throwing forms of @c new. */ * errors from the throwing forms of @c new. */
......
...@@ -160,6 +160,7 @@ namespace std ...@@ -160,6 +160,7 @@ namespace std
/** /**
* @brief Thrown during incorrect typecasting. * @brief Thrown during incorrect typecasting.
* @ingroup exceptions
* *
* If you attempt an invalid @c dynamic_cast expression, an instance of * If you attempt an invalid @c dynamic_cast expression, an instance of
* this class (or something derived from this class) is thrown. */ * this class (or something derived from this class) is thrown. */
...@@ -176,7 +177,10 @@ namespace std ...@@ -176,7 +177,10 @@ namespace std
virtual const char* what() const throw(); virtual const char* what() const throw();
}; };
/** If you use a NULL pointer in a @c typeid expression, this is thrown. */ /**
* @brief Thrown when a NULL pointer in a @c typeid expression is used.
* @ingroup exceptions
*/
class bad_typeid : public exception class bad_typeid : public exception
{ {
public: public:
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-require-cstdint "" } // { dg-require-cstdint "" }
// Copyright (C) 2008 Free Software Foundation // Copyright (C) 2008, 2009 Free Software Foundation
// //
// 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
...@@ -41,6 +41,6 @@ test02() ...@@ -41,6 +41,6 @@ test02()
// { dg-error "instantiated from here" "" { target *-*-* } 30 } // { dg-error "instantiated from here" "" { target *-*-* } 30 }
// { dg-error "instantiated from here" "" { target *-*-* } 39 } // { dg-error "instantiated from here" "" { target *-*-* } 39 }
// { dg-error "not exactly representable" "" { target *-*-* } 218 } // { dg-error "not exactly representable" "" { target *-*-* } 232 }
// { dg-error "integral duration with floating point" "" { target *-*-* } 208 } // { dg-error "integral duration with floating point" "" { target *-*-* } 222 }
// { dg-excess-errors "In instantiation of" } // { dg-excess-errors "In instantiation of" }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
// { dg-require-cstdint "" } // { dg-require-cstdint "" }
// 2008-07-31 Chris Fairles <chris.fairles@gmail.com> // 2008-07-31 Chris Fairles <chris.fairles@gmail.com>
// Copyright (C) 2008 Free Software Foundation, Inc. // Copyright (C) 2008, 2009 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
...@@ -40,6 +40,6 @@ void test01() ...@@ -40,6 +40,6 @@ void test01()
test_type d; test_type d;
} }
// { dg-error "rep cannot be a duration" "" { target *-*-* } 193 } // { dg-error "rep cannot be a duration" "" { target *-*-* } 207 }
// { dg-error "instantiated from here" "" { target *-*-* } 40 } // { dg-error "instantiated from here" "" { target *-*-* } 40 }
// { dg-excess-errors "In instantiation of" } // { dg-excess-errors "In instantiation of" }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
// { dg-require-cstdint "" } // { dg-require-cstdint "" }
// 2008-07-31 Chris Fairles <chris.fairles@gmail.com> // 2008-07-31 Chris Fairles <chris.fairles@gmail.com>
// Copyright (C) 2008 Free Software Foundation, Inc. // Copyright (C) 2008, 2009 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
...@@ -41,6 +41,6 @@ void test01() ...@@ -41,6 +41,6 @@ void test01()
test_type d; test_type d;
} }
// { dg-error "must be a specialization of ratio" "" { target *-*-* } 194 } // { dg-error "must be a specialization of ratio" "" { target *-*-* } 208 }
// { dg-error "instantiated from here" "" { target *-*-* } 41 } // { dg-error "instantiated from here" "" { target *-*-* } 41 }
// { dg-excess-errors "In instantiation of" } // { dg-excess-errors "In instantiation of" }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
// { dg-require-cstdint "" } // { dg-require-cstdint "" }
// 2008-07-31 Chris Fairles <chris.fairles@gmail.com> // 2008-07-31 Chris Fairles <chris.fairles@gmail.com>
// Copyright (C) 2008 Free Software Foundation, Inc. // Copyright (C) 2008, 2009 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
...@@ -42,6 +42,6 @@ void test01() ...@@ -42,6 +42,6 @@ void test01()
test_type d; test_type d;
} }
// { dg-error "period must be positive" "" { target *-*-* } 196 } // { dg-error "period must be positive" "" { target *-*-* } 210 }
// { dg-error "instantiated from here" "" { target *-*-* } 42 } // { dg-error "instantiated from here" "" { target *-*-* } 42 }
// { dg-excess-errors "In instantiation of" } // { dg-excess-errors "In instantiation of" }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
// 2007-05-03 Benjamin Kosnik <bkoz@redhat.com> // 2007-05-03 Benjamin Kosnik <bkoz@redhat.com>
// //
// Copyright (C) 2007 Free Software Foundation, Inc. // Copyright (C) 2007, 2009 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
...@@ -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 *-*-* } 555 } // { dg-error "invalid use of incomplete type" "" { target *-*-* } 562 }
// { dg-error "declaration of" "" { target *-*-* } 518 } // { dg-error "declaration of" "" { target *-*-* } 524 }
// { dg-excess-errors "At global scope" } // { dg-excess-errors "At global scope" }
// { dg-excess-errors "In instantiation of" } // { dg-excess-errors "In instantiation of" }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
// 2007-05-03 Benjamin Kosnik <bkoz@redhat.com> // 2007-05-03 Benjamin Kosnik <bkoz@redhat.com>
// //
// Copyright (C) 2007 Free Software Foundation, Inc. // Copyright (C) 2007, 2009 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
...@@ -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 *-*-* } 477 } // { dg-error "invalid use of incomplete type" "" { target *-*-* } 483 }
// { dg-error "declaration of" "" { target *-*-* } 440 } // { dg-error "declaration of" "" { target *-*-* } 445 }
// { dg-excess-errors "At global scope" } // { dg-excess-errors "At global scope" }
// { dg-excess-errors "In instantiation of" } // { dg-excess-errors "In instantiation of" }
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-require-cstdint "" } // { dg-require-cstdint "" }
// Copyright (C) 2008 Free Software Foundation // Copyright (C) 2008, 2009 Free Software Foundation
// //
// 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
...@@ -50,6 +50,6 @@ test04() ...@@ -50,6 +50,6 @@ test04()
// { dg-error "instantiated from here" "" { target *-*-* } 35 } // { dg-error "instantiated from here" "" { target *-*-* } 35 }
// { dg-error "instantiated from here" "" { target *-*-* } 41 } // { dg-error "instantiated from here" "" { target *-*-* } 41 }
// { dg-error "instantiated from here" "" { target *-*-* } 47 } // { dg-error "instantiated from here" "" { target *-*-* } 47 }
// { dg-error "denominator cannot be zero" "" { target *-*-* } 150 } // { dg-error "denominator cannot be zero" "" { target *-*-* } 158 }
// { dg-error "out of range" "" { target *-*-* } 151 } // { dg-error "out of range" "" { target *-*-* } 159 }
// { dg-excess-errors "In instantiation of" } // { dg-excess-errors "In instantiation of" }
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
// 2008-07-03 Chris Fairles <chris.fairles@gmail.com> // 2008-07-03 Chris Fairles <chris.fairles@gmail.com>
// Copyright (C) 2008 Free Software Foundation // Copyright (C) 2008, 2009 Free Software Foundation
// //
// 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
...@@ -40,9 +40,9 @@ test02() ...@@ -40,9 +40,9 @@ test02()
// { dg-error "instantiated from here" "" { target *-*-* } 30 } // { dg-error "instantiated from here" "" { target *-*-* } 30 }
// { dg-error "instantiated from here" "" { target *-*-* } 36 } // { dg-error "instantiated from here" "" { target *-*-* } 36 }
// { dg-error "instantiated from here" "" { target *-*-* } 37 } // { dg-error "instantiated from here" "" { target *-*-* } 37 }
// { dg-error "overflow in addition" "" { target *-*-* } 127 } // { dg-error "overflow in addition" "" { target *-*-* } 135 }
// { dg-error "overflow in multiplication" "" { target *-*-* } 95 } // { dg-error "overflow in multiplication" "" { target *-*-* } 103 }
// { dg-error "overflow in multiplication" "" { target *-*-* } 97 } // { dg-error "overflow in multiplication" "" { target *-*-* } 105 }
// { dg-error "overflow in multiplication" "" { target *-*-* } 99 } // { dg-error "overflow in multiplication" "" { target *-*-* } 107 }
// { dg-excess-errors "In instantiation of" } // { dg-excess-errors "In instantiation of" }
// { dg-excess-errors "out of range" } // { dg-excess-errors "out of range" }
...@@ -53,7 +53,7 @@ test03() ...@@ -53,7 +53,7 @@ test03()
// { dg-error "used here" "" { target *-*-* } 43 } // { dg-error "used here" "" { target *-*-* } 43 }
// { dg-error "no matching" "" { target *-*-* } 49 } // { dg-error "no matching" "" { target *-*-* } 49 }
// { dg-error "used here" "" { target *-*-* } 50 } // { dg-error "used here" "" { target *-*-* } 50 }
// { dg-error "candidates are" "" { target *-*-* } 214 } // { dg-error "candidates are" "" { target *-*-* } 219 }
// { dg-error "deleted function" "" { target *-*-* } 214 } // { dg-error "deleted function" "" { target *-*-* } 219 }
// { dg-error "deleted function" "" { target *-*-* } 360 } // { dg-error "deleted function" "" { target *-*-* } 365 }
// { dg-excess-errors "note" } // { dg-excess-errors "note" }
...@@ -37,4 +37,4 @@ void test01() ...@@ -37,4 +37,4 @@ void test01()
} }
// { dg-error "used here" "" { target *-*-* } 36 } // { dg-error "used here" "" { target *-*-* } 36 }
// { dg-error "deleted function" "" { target *-*-* } 350 } // { dg-error "deleted function" "" { target *-*-* } 355 }
// 2007-04-27 Paolo Carlini <pcarlini@suse.de> // 2007-04-27 Paolo Carlini <pcarlini@suse.de>
// Copyright (C) 2007, 2008 Free Software Foundation // Copyright (C) 2007, 2008, 2009 Free Software Foundation
// //
// 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
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1504 } // { dg-error "no matching" "" { target *-*-* } 1503 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <deque> #include <deque>
......
// 2007-04-27 Paolo Carlini <pcarlini@suse.de> // 2007-04-27 Paolo Carlini <pcarlini@suse.de>
// Copyright (C) 2007, 2008 Free Software Foundation // Copyright (C) 2007, 2008, 2009 Free Software Foundation
// //
// 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
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1443 } // { dg-error "no matching" "" { target *-*-* } 1442 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <deque> #include <deque>
......
// 2007-04-27 Paolo Carlini <pcarlini@suse.de> // 2007-04-27 Paolo Carlini <pcarlini@suse.de>
// Copyright (C) 2007, 2008 Free Software Foundation // Copyright (C) 2007, 2008, 2009 Free Software Foundation
// //
// 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
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1443 } // { dg-error "no matching" "" { target *-*-* } 1442 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <deque> #include <deque>
......
// 2007-04-27 Paolo Carlini <pcarlini@suse.de> // 2007-04-27 Paolo Carlini <pcarlini@suse.de>
// Copyright (C) 2007, 2008 Free Software Foundation // Copyright (C) 2007, 2008, 2009 Free Software Foundation
// //
// 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
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1588 } // { dg-error "no matching" "" { target *-*-* } 1587 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <deque> #include <deque>
......
// 2007-04-27 Paolo Carlini <pcarlini@suse.de> // 2007-04-27 Paolo Carlini <pcarlini@suse.de>
// Copyright (C) 2007, 2008 Free Software Foundation // Copyright (C) 2007, 2008, 2009 Free Software Foundation
// //
// 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
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1389 } // { dg-error "no matching" "" { target *-*-* } 1388 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <list> #include <list>
......
// 2007-04-27 Paolo Carlini <pcarlini@suse.de> // 2007-04-27 Paolo Carlini <pcarlini@suse.de>
// Copyright (C) 2007, 2008 Free Software Foundation // Copyright (C) 2007, 2008, 2009 Free Software Foundation
// //
// 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
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1358 } // { dg-error "no matching" "" { target *-*-* } 1357 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <list> #include <list>
......
// 2007-04-27 Paolo Carlini <pcarlini@suse.de> // 2007-04-27 Paolo Carlini <pcarlini@suse.de>
// Copyright (C) 2007, 2008 Free Software Foundation // Copyright (C) 2007, 2008, 2009 Free Software Foundation
// //
// 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
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1358 } // { dg-error "no matching" "" { target *-*-* } 1357 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <list> #include <list>
......
// 2007-04-27 Paolo Carlini <pcarlini@suse.de> // 2007-04-27 Paolo Carlini <pcarlini@suse.de>
// Copyright (C) 2007, 2008 Free Software Foundation // Copyright (C) 2007, 2008, 2009 Free Software Foundation
// //
// 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
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1358 } // { dg-error "no matching" "" { target *-*-* } 1357 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <list> #include <list>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1057 } // { dg-error "no matching" "" { target *-*-* } 1056 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <vector> #include <vector>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 997 } // { dg-error "no matching" "" { target *-*-* } 996 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <vector> #include <vector>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 997 } // { dg-error "no matching" "" { target *-*-* } 996 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <vector> #include <vector>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// USA. // USA.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1098 } // { dg-error "no matching" "" { target *-*-* } 1097 }
// { dg-excess-errors "" } // { dg-excess-errors "" }
#include <vector> #include <vector>
......
// { dg-do compile } // { dg-do compile }
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Free Software // Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
// Foundation, Inc. // 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
...@@ -43,5 +43,5 @@ void test01() ...@@ -43,5 +43,5 @@ void test01()
} }
// { dg-error "synthesized" "" { target *-*-* } 42 } // { dg-error "synthesized" "" { target *-*-* } 42 }
// { dg-error "within this context" "" { target *-*-* } 35 } // { dg-error "within this context" "" { target *-*-* } 35 }
// { dg-error "is private" "" { target *-*-* } 793 } // { dg-error "is private" "" { target *-*-* } 798 }
// { dg-error "operator=" "" { target *-*-* } 0 } // { dg-error "operator=" "" { target *-*-* } 0 }
// { dg-do compile } // { dg-do compile }
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Free Software // Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
// Foundation, Inc. // 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
...@@ -43,5 +43,5 @@ void test02() ...@@ -43,5 +43,5 @@ void test02()
} }
// { dg-error "within this context" "" { target *-*-* } 36 } // { dg-error "within this context" "" { target *-*-* } 36 }
// { dg-error "synthesized" "" { target *-*-* } 42 } // { dg-error "synthesized" "" { target *-*-* } 42 }
// { dg-error "is private" "" { target *-*-* } 790 } // { dg-error "is private" "" { target *-*-* } 795 }
// { dg-error "copy constructor" "" { target *-*-* } 0 } // { dg-error "copy constructor" "" { target *-*-* } 0 }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do compile } // { dg-do compile }
// Copyright (C) 2008 Free Software Foundation, Inc. // Copyright (C) 2008, 2009 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
...@@ -39,19 +39,19 @@ int main() ...@@ -39,19 +39,19 @@ int main()
} }
// { dg-error "used here" "" { target *-*-* } 530 } // { dg-error "used here" "" { target *-*-* } 530 }
// { dg-error "deleted function" "" { target *-*-* } 239 } // { dg-error "deleted function" "" { target *-*-* } 244 }
// { dg-error "deleted function" "" { target *-*-* } 257 } // { dg-error "deleted function" "" { target *-*-* } 262 }
// { dg-error "deleted function" "" { target *-*-* } 275 } // { dg-error "deleted function" "" { target *-*-* } 280 }
// { dg-error "deleted function" "" { target *-*-* } 293 } // { dg-error "deleted function" "" { target *-*-* } 298 }
// { dg-error "deleted function" "" { target *-*-* } 311 } // { dg-error "deleted function" "" { target *-*-* } 316 }
// { dg-error "deleted function" "" { target *-*-* } 329 } // { dg-error "deleted function" "" { target *-*-* } 334 }
// { dg-error "deleted function" "" { target *-*-* } 347 } // { dg-error "deleted function" "" { target *-*-* } 352 }
// { dg-error "deleted function" "" { target *-*-* } 365 } // { dg-error "deleted function" "" { target *-*-* } 370 }
// { dg-error "deleted function" "" { target *-*-* } 383 } // { dg-error "deleted function" "" { target *-*-* } 388 }
// { dg-error "deleted function" "" { target *-*-* } 401 } // { dg-error "deleted function" "" { target *-*-* } 406 }
// { dg-error "deleted function" "" { target *-*-* } 419 } // { dg-error "deleted function" "" { target *-*-* } 424 }
// { dg-error "deleted function" "" { target *-*-* } 437 } // { dg-error "deleted function" "" { target *-*-* } 442 }
// { dg-error "deleted function" "" { target *-*-* } 455 } // { dg-error "deleted function" "" { target *-*-* } 460 }
// { dg-error "deleted function" "" { target *-*-* } 473 } // { dg-error "deleted function" "" { target *-*-* } 478 }
// { dg-error "deleted function" "" { target *-*-* } 491 } // { dg-error "deleted function" "" { target *-*-* } 496 }
// { dg-excess-errors "In member function" } // { dg-excess-errors "In member function" }
// { dg-options "-std=gnu++0x" } // { dg-options "-std=gnu++0x" }
// { dg-do compile } // { dg-do compile }
// Copyright (C) 2008 Free Software Foundation, Inc. // Copyright (C) 2008, 2009 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
...@@ -39,19 +39,19 @@ int main() ...@@ -39,19 +39,19 @@ int main()
} }
// { dg-error "used here" "" { target *-*-* } 569 } // { dg-error "used here" "" { target *-*-* } 569 }
// { dg-error "deleted function" "" { target *-*-* } 238 } // { dg-error "deleted function" "" { target *-*-* } 243 }
// { dg-error "deleted function" "" { target *-*-* } 256 } // { dg-error "deleted function" "" { target *-*-* } 261 }
// { dg-error "deleted function" "" { target *-*-* } 274 } // { dg-error "deleted function" "" { target *-*-* } 279 }
// { dg-error "deleted function" "" { target *-*-* } 292 } // { dg-error "deleted function" "" { target *-*-* } 297 }
// { dg-error "deleted function" "" { target *-*-* } 310 } // { dg-error "deleted function" "" { target *-*-* } 315 }
// { dg-error "deleted function" "" { target *-*-* } 328 } // { dg-error "deleted function" "" { target *-*-* } 333 }
// { dg-error "deleted function" "" { target *-*-* } 346 } // { dg-error "deleted function" "" { target *-*-* } 351 }
// { dg-error "deleted function" "" { target *-*-* } 364 } // { dg-error "deleted function" "" { target *-*-* } 369 }
// { dg-error "deleted function" "" { target *-*-* } 382 } // { dg-error "deleted function" "" { target *-*-* } 387 }
// { dg-error "deleted function" "" { target *-*-* } 400 } // { dg-error "deleted function" "" { target *-*-* } 405 }
// { dg-error "deleted function" "" { target *-*-* } 418 } // { dg-error "deleted function" "" { target *-*-* } 423 }
// { dg-error "deleted function" "" { target *-*-* } 436 } // { dg-error "deleted function" "" { target *-*-* } 441 }
// { dg-error "deleted function" "" { target *-*-* } 454 } // { dg-error "deleted function" "" { target *-*-* } 459 }
// { dg-error "deleted function" "" { target *-*-* } 472 } // { dg-error "deleted function" "" { target *-*-* } 477 }
// { dg-error "deleted function" "" { target *-*-* } 490 } // { dg-error "deleted function" "" { target *-*-* } 495 }
// { dg-excess-errors "In member function" } // { dg-excess-errors "In member function" }
...@@ -41,4 +41,4 @@ void test01() ...@@ -41,4 +41,4 @@ void test01()
} }
// { dg-error "used here" "" { target *-*-* } 40 } // { dg-error "used here" "" { target *-*-* } 40 }
// { dg-error "deleted function" "" { target *-*-* } 64 } // { dg-error "deleted function" "" { target *-*-* } 72 }
...@@ -40,4 +40,4 @@ void test01() ...@@ -40,4 +40,4 @@ void test01()
} }
// { dg-error "used here" "" { target *-*-* } 39 } // { dg-error "used here" "" { target *-*-* } 39 }
// { dg-error "deleted function" "" { target *-*-* } 63 } // { dg-error "deleted function" "" { target *-*-* } 71 }
...@@ -41,4 +41,4 @@ void test01() ...@@ -41,4 +41,4 @@ void test01()
} }
// { dg-error "used here" "" { target *-*-* } 40 } // { dg-error "used here" "" { target *-*-* } 40 }
// { dg-error "deleted function" "" { target *-*-* } 172 } // { dg-error "deleted function" "" { target *-*-* } 180 }
...@@ -40,4 +40,4 @@ void test01() ...@@ -40,4 +40,4 @@ void test01()
} }
// { dg-error "used here" "" { target *-*-* } 39 } // { dg-error "used here" "" { target *-*-* } 39 }
// { dg-error "deleted function" "" { target *-*-* } 171 } // { dg-error "deleted function" "" { target *-*-* } 179 }
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