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
This commit is contained in:
Benjamin Kosnik 2009-02-21 00:45:21 +00:00
parent 791838fa91
commit 5b9daa7e60
110 changed files with 1600 additions and 1029 deletions

View file

@ -1,3 +1,145 @@
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 @@
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 @@
* 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

View file

@ -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.
*/ */
@ -51,71 +39,6 @@
* @brief GNU implemenation details, not for public use or * @brief GNU implemenation details, not for public use or
* export. Used only when anonymous namespaces cannot be substituted. * export. Used only when anonymous namespaces cannot be substituted.
*/ */
// // // // // // // // // // // // // // // // // // // // // // // //
/** @namespace 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
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
/** /**
@ -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
<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.
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.
*/

View file

@ -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
# 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 =
# "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 \
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 \
__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 \
_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=// \

View file

@ -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)
* *
* @{ * @{
*/ */
/// 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)
{ 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)
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)
{ 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)

View file

@ -129,8 +129,23 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
*/ */
/** /**
* @defgroup set_algorithms Set Operation Algorithms * @defgroup mutating_algorithms Mutating Algorithms
* @ingroup algorithms * @ingroup algorithms
*/
/**
* @defgroup non_mutating_algorithms Non-Mutating Algorithms
* @ingroup algorithms
*/
/**
* @defgroup sorting_algorithms Sorting 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)
/** /**
* @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.

View file

@ -1,6 +1,6 @@
// 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 @@
_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)
/** /**
* @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

View file

@ -1,7 +1,7 @@
// 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)
// 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.

View file

@ -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

View file

@ -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

View file

@ -1,6 +1,6 @@
// 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
@ -42,6 +42,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.
* *
@ -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 */

View file

@ -1,6 +1,6 @@
// 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
@ -42,6 +42,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.
* *
@ -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 */

View file

@ -1,6 +1,6 @@
// 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
@ -42,6 +42,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.
* *
@ -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 */

View file

@ -1,7 +1,7 @@
// 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)
// 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)
{ {
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:

View file

@ -1,6 +1,6 @@
// 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
@ -42,6 +42,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.
* *
@ -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 */

View file

@ -1,4 +1,4 @@
// <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 @@
# 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
{ } { }
/**
* @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
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
} }
/// 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
: 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
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
std::forward<_Args>(__args)...); std::forward<_Args>(__args)...);
} }
} // @} group pointer_abstractions
_GLIBCXX_END_NAMESPACE

View file

@ -1,6 +1,6 @@
// 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
@ -42,6 +42,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.
* *
@ -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 */

View file

@ -73,11 +73,6 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/**
* @addtogroup algorithms Algorithms
* @{
*/
/** /**
* @brief Find the median of three values. * @brief Find the median of three values.
* @param a A value. * @param a A value.
@ -645,6 +640,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Find last matching subsequence in a sequence. * @brief Find last matching subsequence in a sequence.
* @ingroup non_mutating_algorithms
* @param first1 Start of range to search. * @param first1 Start of range to search.
* @param last1 End of range to search. * @param last1 End of range to search.
* @param first2 Start of sequence to match. * @param first2 Start of sequence to match.
@ -688,6 +684,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Find last matching subsequence in a sequence using a predicate. * @brief Find last matching subsequence in a sequence using a predicate.
* @ingroup non_mutating_algorithms
* @param first1 Start of range to search. * @param first1 Start of range to search.
* @param last1 End of range to search. * @param last1 End of range to search.
* @param first2 Start of sequence to match. * @param first2 Start of sequence to match.
@ -738,6 +735,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Checks that a predicate is true for all the elements * @brief Checks that a predicate is true for all the elements
* of a sequence. * of a sequence.
* @ingroup non_mutating_algorithms
* @param first An input iterator. * @param first An input iterator.
* @param last An input iterator. * @param last An input iterator.
* @param pred A predicate. * @param pred A predicate.
@ -754,6 +752,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Checks that a predicate is false for all the elements * @brief Checks that a predicate is false for all the elements
* of a sequence. * of a sequence.
* @ingroup non_mutating_algorithms
* @param first An input iterator. * @param first An input iterator.
* @param last An input iterator. * @param last An input iterator.
* @param pred A predicate. * @param pred A predicate.
@ -770,6 +769,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Checks that a predicate is false for at least an element * @brief Checks that a predicate is false for at least an element
* of a sequence. * of a sequence.
* @ingroup non_mutating_algorithms
* @param first An input iterator. * @param first An input iterator.
* @param last An input iterator. * @param last An input iterator.
* @param pred A predicate. * @param pred A predicate.
@ -786,6 +786,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Find the first element in a sequence for which a * @brief Find the first element in a sequence for which a
* predicate is false. * predicate is false.
* @ingroup non_mutating_algorithms
* @param first An input iterator. * @param first An input iterator.
* @param last An input iterator. * @param last An input iterator.
* @param pred A predicate. * @param pred A predicate.
@ -808,6 +809,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Checks whether the sequence is partitioned. * @brief Checks whether the sequence is partitioned.
* @ingroup mutating_algorithms
* @param first An input iterator. * @param first An input iterator.
* @param last An input iterator. * @param last An input iterator.
* @param pred A predicate. * @param pred A predicate.
@ -826,6 +828,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Find the partition point of a partitioned range. * @brief Find the partition point of a partitioned range.
* @ingroup mutating_algorithms
* @param first An iterator. * @param first An iterator.
* @param last Another iterator. * @param last Another iterator.
* @param pred A predicate. * @param pred A predicate.
@ -873,6 +876,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Copy a sequence, removing elements of a given value. * @brief Copy a sequence, removing elements of a given value.
* @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.
@ -908,6 +912,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Copy a sequence, removing elements for which a predicate is true. * @brief Copy a sequence, removing elements for which a predicate is true.
* @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.
@ -946,6 +951,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
#ifdef __GXX_EXPERIMENTAL_CXX0X__ #ifdef __GXX_EXPERIMENTAL_CXX0X__
/** /**
* @brief Copy the elements of a sequence for which a predicate is true. * @brief Copy the elements of a sequence for which a predicate is true.
* @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.
@ -1005,6 +1011,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Copies the range [first,first+n) into [result,result+n). * @brief Copies the range [first,first+n) into [result,result+n).
* @ingroup mutating_algorithms
* @param first An input iterator. * @param first An input iterator.
* @param n The number of elements to copy. * @param n The number of elements to copy.
* @param result An output iterator. * @param result An output iterator.
@ -1031,6 +1038,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Copy the elements of a sequence to separate output sequences * @brief Copy the elements of a sequence to separate output sequences
* depending on the truth value of a predicate. * depending on the truth value of a predicate.
* @ingroup mutating_algorithms
* @param first An input iterator. * @param first An input iterator.
* @param last An input iterator. * @param last An input iterator.
* @param out_true An output iterator. * @param out_true An output iterator.
@ -1077,6 +1085,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Remove elements from a sequence. * @brief Remove elements from a sequence.
* @ingroup mutating_algorithms
* @param first An input iterator. * @param first An input iterator.
* @param last An input iterator. * @param last An input iterator.
* @param value The value to be removed. * @param value The value to be removed.
@ -1119,6 +1128,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Remove elements from a sequence using a predicate. * @brief Remove elements from a sequence using a predicate.
* @ingroup mutating_algorithms
* @param first A forward iterator. * @param first A forward iterator.
* @param last A forward iterator. * @param last A forward iterator.
* @param pred A predicate. * @param pred A predicate.
@ -1161,6 +1171,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Remove consecutive duplicate values from a sequence. * @brief Remove consecutive duplicate values from a sequence.
* @ingroup mutating_algorithms
* @param first A forward iterator. * @param first A forward iterator.
* @param last A forward iterator. * @param last A forward iterator.
* @return An iterator designating the end of the resulting sequence. * @return An iterator designating the end of the resulting sequence.
@ -1199,6 +1210,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Remove consecutive values from a sequence using a predicate. * @brief Remove consecutive values from a sequence using a predicate.
* @ingroup mutating_algorithms
* @param first A forward iterator. * @param first A forward iterator.
* @param last A forward iterator. * @param last A forward iterator.
* @param binary_pred A binary predicate. * @param binary_pred A binary predicate.
@ -1429,6 +1441,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Reverse a sequence. * @brief Reverse a sequence.
* @ingroup mutating_algorithms
* @param first A bidirectional iterator. * @param first A bidirectional iterator.
* @param last A bidirectional iterator. * @param last A bidirectional iterator.
* @return reverse() returns no value. * @return reverse() returns no value.
@ -1451,6 +1464,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Copy a sequence, reversing its elements. * @brief Copy a sequence, reversing its elements.
* @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 An output iterator. * @param result An output iterator.
@ -1640,6 +1654,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Rotate the elements of a sequence. * @brief Rotate the elements of a sequence.
* @ingroup mutating_algorithms
* @param first A forward iterator. * @param first A forward iterator.
* @param middle A forward iterator. * @param middle A forward iterator.
* @param last A forward iterator. * @param last A forward iterator.
@ -1674,6 +1689,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Copy a sequence, rotating its elements. * @brief Copy a sequence, rotating its elements.
* @ingroup mutating_algorithms
* @param first A forward iterator. * @param first A forward iterator.
* @param middle A forward iterator. * @param middle A forward iterator.
* @param last A forward iterator. * @param last A forward iterator.
@ -1833,6 +1849,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Move elements for which a predicate is true to the beginning * @brief Move elements for which a predicate is true to the beginning
* of a sequence, preserving relative ordering. * of a sequence, preserving relative ordering.
* @ingroup mutating_algorithms
* @param first A forward iterator. * @param first A forward iterator.
* @param last A forward iterator. * @param last A forward iterator.
* @param pred A predicate functor. * @param pred A predicate functor.
@ -1912,6 +1929,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Copy the smallest elements of a sequence. * @brief Copy the smallest elements of a sequence.
* @ingroup sorting_algorithms
* @param first An iterator. * @param first An iterator.
* @param last Another iterator. * @param last Another iterator.
* @param result_first A random-access iterator. * @param result_first A random-access iterator.
@ -1976,6 +1994,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Copy the smallest elements of a sequence using a predicate for * @brief Copy the smallest elements of a sequence using a predicate for
* comparison. * comparison.
* @ingroup sorting_algorithms
* @param first An input iterator. * @param first An input iterator.
* @param last Another input iterator. * @param last Another input iterator.
* @param result_first A random-access iterator. * @param result_first A random-access iterator.
@ -2440,6 +2459,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Finds the first position in which @a val could be inserted * @brief Finds the first position in which @a val could be inserted
* without changing the ordering. * without changing the ordering.
* @ingroup binary_search_algorithms
* @param first An iterator. * @param first An iterator.
* @param last Another iterator. * @param last Another iterator.
* @param val The search term. * @param val The search term.
@ -2492,6 +2512,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Finds the last position in which @a val could be inserted * @brief Finds the last position in which @a val could be inserted
* without changing the ordering. * without changing the ordering.
* @ingroup binary_search_algorithms
* @param first An iterator. * @param first An iterator.
* @param last Another iterator. * @param last Another iterator.
* @param val The search term. * @param val The search term.
@ -2538,6 +2559,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Finds the last position in which @a val could be inserted * @brief Finds the last position in which @a val could be inserted
* without changing the ordering. * without changing the ordering.
* @ingroup binary_search_algorithms
* @param first An iterator. * @param first An iterator.
* @param last Another iterator. * @param last Another iterator.
* @param val The search term. * @param val The search term.
@ -2590,6 +2612,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Finds the largest subrange in which @a val could be inserted * @brief Finds the largest subrange in which @a val could be inserted
* at any place in it without changing the ordering. * at any place in it without changing the ordering.
* @ingroup binary_search_algorithms
* @param first An iterator. * @param first An iterator.
* @param last Another iterator. * @param last Another iterator.
* @param val The search term. * @param val The search term.
@ -2717,11 +2740,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Determines whether an element exists in a range. * @brief Determines whether an element exists in a range.
* @ingroup binary_search_algorithms
* @param first An iterator. * @param first An iterator.
* @param last Another iterator. * @param last Another iterator.
* @param val The search term. * @param val The search term.
* @return True if @a val (or its equivalent) is in [@a first,@a last ]. * @return True if @a val (or its equivalent) is in [@a first,@a last ].
* @ingroup binary_search_algorithms
* *
* Note that this does not actually return an iterator to @a val. For * Note that this does not actually return an iterator to @a val. For
* that, use std::find or a container's specialized find member functions. * that, use std::find or a container's specialized find member functions.
@ -2746,12 +2769,12 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Determines whether an element exists in a range. * @brief Determines whether an element exists in a range.
* @ingroup binary_search_algorithms
* @param first An iterator. * @param first An iterator.
* @param last Another iterator. * @param last Another iterator.
* @param val The search term. * @param val The search term.
* @param comp A functor to use for comparisons. * @param comp A functor to use for comparisons.
* @return True if @a val (or its equivalent) is in [@a first,@a last ]. * @return True if @a val (or its equivalent) is in [@a first,@a last ].
* @ingroup binary_search_algorithms
* *
* Note that this does not actually return an iterator to @a val. For * Note that this does not actually return an iterator to @a val. For
* that, use std::find or a container's specialized find member functions. * that, use std::find or a container's specialized find member functions.
@ -3091,6 +3114,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Merges two sorted ranges in place. * @brief Merges two sorted ranges in place.
* @ingroup sorting_algorithms
* @param first An iterator. * @param first An iterator.
* @param middle Another iterator. * @param middle Another iterator.
* @param last Another iterator. * @param last Another iterator.
@ -3141,6 +3165,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Merges two sorted ranges in place. * @brief Merges two sorted ranges in place.
* @ingroup sorting_algorithms
* @param first An iterator. * @param first An iterator.
* @param middle Another iterator. * @param middle Another iterator.
* @param last Another iterator. * @param last Another iterator.
@ -3477,6 +3502,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Determines whether all elements of a sequence exists in a range * @brief Determines whether all elements of a sequence exists in a range
* using comparison. * using comparison.
* @ingroup set_algorithms
* @param first1 Start of search range. * @param first1 Start of search range.
* @param last1 End of search range. * @param last1 End of search range.
* @param first2 Start of sequence * @param first2 Start of sequence
@ -3538,6 +3564,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Permute range into the next "dictionary" ordering. * @brief Permute range into the next "dictionary" ordering.
* @ingroup sorting_algorithms
* @param first Start of range. * @param first Start of range.
* @param last End of range. * @param last End of range.
* @return False if wrapped to first permutation, true otherwise. * @return False if wrapped to first permutation, true otherwise.
@ -3592,6 +3619,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Permute range into the next "dictionary" ordering using * @brief Permute range into the next "dictionary" ordering using
* comparison functor. * comparison functor.
* @ingroup sorting_algorithms
* @param first Start of range. * @param first Start of range.
* @param last End of range. * @param last End of range.
* @param comp A comparison functor. * @param comp A comparison functor.
@ -3648,6 +3676,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Permute range into the previous "dictionary" ordering. * @brief Permute range into the previous "dictionary" ordering.
* @ingroup sorting_algorithms
* @param first Start of range. * @param first Start of range.
* @param last End of range. * @param last End of range.
* @return False if wrapped to last permutation, true otherwise. * @return False if wrapped to last permutation, true otherwise.
@ -3703,6 +3732,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Permute range into the previous "dictionary" ordering using * @brief Permute range into the previous "dictionary" ordering using
* comparison functor. * comparison functor.
* @ingroup sorting_algorithms
* @param first Start of range. * @param first Start of range.
* @param last End of range. * @param last End of range.
* @param comp A comparison functor. * @param comp A comparison functor.
@ -3799,6 +3829,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Copy a sequence, replacing each value for which a predicate * @brief Copy a sequence, replacing each value for which a predicate
* returns true with another value. * returns true with another value.
* @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.
@ -3836,6 +3867,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
#ifdef __GXX_EXPERIMENTAL_CXX0X__ #ifdef __GXX_EXPERIMENTAL_CXX0X__
/** /**
* @brief Determines whether the elements of a sequence are sorted. * @brief Determines whether the elements of a sequence are sorted.
* @ingroup sorting_algorithms
* @param first An iterator. * @param first An iterator.
* @param last Another iterator. * @param last Another iterator.
* @return True if the elements are sorted, false otherwise. * @return True if the elements are sorted, false otherwise.
@ -3848,6 +3880,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Determines whether the elements of a sequence are sorted * @brief Determines whether the elements of a sequence are sorted
* according to a comparison functor. * according to a comparison functor.
* @ingroup sorting_algorithms
* @param first An iterator. * @param first An iterator.
* @param last Another iterator. * @param last Another iterator.
* @param comp A comparison functor. * @param comp A comparison functor.
@ -3861,6 +3894,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Determines the end of a sorted sequence. * @brief Determines the end of a sorted sequence.
* @ingroup sorting_algorithms
* @param first An iterator. * @param first An iterator.
* @param last Another iterator. * @param last Another iterator.
* @return An iterator pointing to the last iterator i in [first, last) * @return An iterator pointing to the last iterator i in [first, last)
@ -3888,6 +3922,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Determines the end of a sorted sequence using comparison functor. * @brief Determines the end of a sorted sequence using comparison functor.
* @ingroup sorting_algorithms
* @param first An iterator. * @param first An iterator.
* @param last Another iterator. * @param last Another iterator.
* @param comp A comparison functor. * @param comp A comparison functor.
@ -3918,6 +3953,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Determines min and max at once as an ordered pair. * @brief Determines min and max at once as an ordered pair.
* @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 A pair(b, a) if b is smaller than a, pair(a, b) otherwise. * @return A pair(b, a) if b is smaller than a, pair(a, b) otherwise.
@ -3935,6 +3971,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Determines min and max at once as an ordered pair. * @brief Determines min and max at once as an ordered pair.
* @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_functor comparison functor@endlink. * @param comp A @link comparison_functor comparison functor@endlink.
@ -3951,6 +3988,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Return a pair of iterators pointing to the minimum and maximum * @brief Return a pair of iterators pointing to the minimum and maximum
* elements in a range. * elements in a range.
* @ingroup sorting_algorithms
* @param first Start of range. * @param first Start of range.
* @param last End of range. * @param last End of range.
* @return make_pair(m, M), where m is the first iterator i in * @return make_pair(m, M), where m is the first iterator i in
@ -4025,6 +4063,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Return a pair of iterators pointing to the minimum and maximum * @brief Return a pair of iterators pointing to the minimum and maximum
* elements in a range. * elements in a range.
* @ingroup sorting_algorithms
* @param first Start of range. * @param first Start of range.
* @param last End of range. * @param last End of range.
* @param comp Comparison functor. * @param comp Comparison functor.
@ -4139,19 +4178,13 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
} }
#endif // __GXX_EXPERIMENTAL_CXX0X__ #endif // __GXX_EXPERIMENTAL_CXX0X__
/* @} */ // 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 Apply a function to every element of a sequence. * @brief Apply a function to every element of a sequence.
* @ingroup non_mutating_algorithms
* @param first An input iterator. * @param first An input iterator.
* @param last An input iterator. * @param last An input iterator.
* @param f A unary function object. * @param f A unary function object.
@ -4175,6 +4208,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Find the first occurrence of a value in a sequence. * @brief Find the first occurrence of a value in a sequence.
* @ingroup non_mutating_algorithms
* @param first An input iterator. * @param first An input iterator.
* @param last An input iterator. * @param last An input iterator.
* @param val The value to find. * @param val The value to find.
@ -4198,6 +4232,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Find the first element in a sequence for which a * @brief Find the first element in a sequence for which a
* predicate is true. * predicate is true.
* @ingroup non_mutating_algorithms
* @param first An input iterator. * @param first An input iterator.
* @param last An input iterator. * @param last An input iterator.
* @param pred A predicate. * @param pred A predicate.
@ -4220,6 +4255,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Find element from a set in a sequence. * @brief Find element from a set in a sequence.
* @ingroup non_mutating_algorithms
* @param first1 Start of range to search. * @param first1 Start of range to search.
* @param last1 End of range to search. * @param last1 End of range to search.
* @param first2 Start of match candidates. * @param first2 Start of match candidates.
@ -4255,6 +4291,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Find element from a set in a sequence using a predicate. * @brief Find element from a set in a sequence using a predicate.
* @ingroup non_mutating_algorithms
* @param first1 Start of range to search. * @param first1 Start of range to search.
* @param last1 End of range to search. * @param last1 End of range to search.
* @param first2 Start of match candidates. * @param first2 Start of match candidates.
@ -4295,6 +4332,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Find two adjacent values in a sequence that are equal. * @brief Find two adjacent values in a sequence that are equal.
* @ingroup non_mutating_algorithms
* @param first A forward iterator. * @param first A forward iterator.
* @param last A forward iterator. * @param last A forward iterator.
* @return The first iterator @c i such that @c i and @c i+1 are both * @return The first iterator @c i such that @c i and @c i+1 are both
@ -4324,6 +4362,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Find two adjacent values in a sequence using a predicate. * @brief Find two adjacent values in a sequence using a predicate.
* @ingroup non_mutating_algorithms
* @param first A forward iterator. * @param first A forward iterator.
* @param last A forward iterator. * @param last A forward iterator.
* @param binary_pred A binary predicate. * @param binary_pred A binary predicate.
@ -4357,6 +4396,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Count the number of copies of a value in a sequence. * @brief Count the number of copies of a value in a sequence.
* @ingroup non_mutating_algorithms
* @param first An input iterator. * @param first An input iterator.
* @param last An input iterator. * @param last An input iterator.
* @param value The value to be counted. * @param value The value to be counted.
@ -4381,6 +4421,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Count the elements of a sequence for which a predicate is true. * @brief Count the elements of a sequence for which a predicate is true.
* @ingroup non_mutating_algorithms
* @param first An input iterator. * @param first An input iterator.
* @param last An input iterator. * @param last An input iterator.
* @param pred A predicate. * @param pred A predicate.
@ -4405,6 +4446,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Search a sequence for a matching sub-sequence. * @brief Search a sequence for a matching sub-sequence.
* @ingroup non_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.
@ -4478,6 +4520,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Search a sequence for a matching sub-sequence using a predicate. * @brief Search a sequence for a matching sub-sequence using a predicate.
* @ingroup non_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.
@ -4558,6 +4601,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Search a sequence for a number of consecutive values. * @brief Search a sequence for a number of consecutive values.
* @ingroup non_mutating_algorithms
* @param first A forward iterator. * @param first A forward iterator.
* @param last A forward iterator. * @param last A forward iterator.
* @param count The number of consecutive values. * @param count The number of consecutive values.
@ -4592,6 +4636,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Search a sequence for a number of consecutive values using a * @brief Search a sequence for a number of consecutive values using a
* predicate. * predicate.
* @ingroup non_mutating_algorithms
* @param first A forward iterator. * @param first A forward iterator.
* @param last A forward iterator. * @param last A forward iterator.
* @param count The number of consecutive values. * @param count The number of consecutive values.
@ -4632,6 +4677,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Perform an operation on a sequence. * @brief Perform an operation on a sequence.
* @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.
@ -4665,6 +4711,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Perform an operation on corresponding elements of two sequences. * @brief Perform an operation on corresponding elements of two sequences.
* @ingroup 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.
@ -4703,6 +4750,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Replace each occurrence of one value in a sequence with another * @brief Replace each occurrence of one value in a sequence with another
* value. * 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 old_value The value to be replaced. * @param old_value The value to be replaced.
@ -4734,6 +4782,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Replace each value in a sequence for which a predicate returns * @brief Replace each value in a sequence for which a predicate returns
* true with another value. * true with another 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 pred A predicate. * @param pred A predicate.
@ -4765,6 +4814,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Assign the result of a function object to each value in a * @brief Assign the result of a function object to each value in a
* sequence. * sequence.
* @ingroup mutating_algorithms
* @param first A forward iterator. * @param first A forward iterator.
* @param last A forward iterator. * @param last A forward iterator.
* @param gen A function object taking no arguments and returning * @param gen A function object taking no arguments and returning
@ -4792,6 +4842,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Assign the result of a function object to each value in a * @brief Assign the result of a function object to each value in a
* sequence. * sequence.
* @ingroup mutating_algorithms
* @param first A forward iterator. * @param first A forward iterator.
* @param n The length of the sequence. * @param n The length of the sequence.
* @param gen A function object taking no arguments and returning * @param gen A function object taking no arguments and returning
@ -4818,6 +4869,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Copy a sequence, removing consecutive duplicate values. * @brief Copy a sequence, removing consecutive duplicate values.
* @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.
@ -4858,6 +4910,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Copy a sequence, removing consecutive values using a predicate. * @brief Copy a sequence, removing consecutive values using a predicate.
* @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.
@ -4897,6 +4950,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Randomly shuffle the elements of a sequence. * @brief Randomly shuffle the elements of a sequence.
* @ingroup mutating_algorithms
* @param first A forward iterator. * @param first A forward iterator.
* @param last A forward iterator. * @param last A forward iterator.
* @return Nothing. * @return Nothing.
@ -4922,6 +4976,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Shuffle the elements of a sequence using a random number * @brief Shuffle the elements of a sequence using a random number
* generator. * generator.
* @ingroup mutating_algorithms
* @param first A forward iterator. * @param first A forward iterator.
* @param last A forward iterator. * @param last A forward iterator.
* @param rand The RNG functor or function. * @param rand The RNG functor or function.
@ -4952,6 +5007,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Move elements for which a predicate is true to the beginning * @brief Move elements for which a predicate is true to the beginning
* of a sequence. * of a sequence.
* @ingroup mutating_algorithms
* @param first A forward iterator. * @param first A forward iterator.
* @param last A forward iterator. * @param last A forward iterator.
* @param pred A predicate functor. * @param pred A predicate functor.
@ -4983,6 +5039,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Sort the smallest elements of a sequence. * @brief Sort the smallest elements of a sequence.
* @ingroup sorting_algorithms
* @param first An iterator. * @param first An iterator.
* @param middle Another iterator. * @param middle Another iterator.
* @param last Another iterator. * @param last Another iterator.
@ -5019,6 +5076,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Sort the smallest elements of a sequence using a predicate * @brief Sort the smallest elements of a sequence using a predicate
* for comparison. * for comparison.
* @ingroup sorting_algorithms
* @param first An iterator. * @param first An iterator.
* @param middle Another iterator. * @param middle Another iterator.
* @param last Another iterator. * @param last Another iterator.
@ -5058,6 +5116,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Sort a sequence just enough to find a particular position. * @brief Sort a sequence just enough to find a particular position.
* @ingroup sorting_algorithms
* @param first An iterator. * @param first An iterator.
* @param nth Another iterator. * @param nth Another iterator.
* @param last Another iterator. * @param last Another iterator.
@ -5096,6 +5155,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Sort a sequence just enough to find a particular position * @brief Sort a sequence just enough to find a particular position
* using a predicate for comparison. * using a predicate for comparison.
* @ingroup sorting_algorithms
* @param first An iterator. * @param first An iterator.
* @param nth Another iterator. * @param nth Another iterator.
* @param last Another iterator. * @param last Another iterator.
@ -5135,6 +5195,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Sort the elements of a sequence. * @brief Sort the elements of a sequence.
* @ingroup sorting_algorithms
* @param first An iterator. * @param first An iterator.
* @param last Another iterator. * @param last Another iterator.
* @return Nothing. * @return Nothing.
@ -5169,6 +5230,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Sort the elements of a sequence using a predicate for comparison. * @brief Sort the elements of a sequence using a predicate for comparison.
* @ingroup sorting_algorithms
* @param first An iterator. * @param first An iterator.
* @param last Another iterator. * @param last Another iterator.
* @param comp A comparison functor. * @param comp A comparison functor.
@ -5206,6 +5268,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Merges two sorted ranges. * @brief Merges two sorted ranges.
* @ingroup sorting_algorithms
* @param first1 An iterator. * @param first1 An iterator.
* @param first2 Another iterator. * @param first2 Another iterator.
* @param last1 Another iterator. * @param last1 Another iterator.
@ -5264,6 +5327,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Merges two sorted ranges. * @brief Merges two sorted ranges.
* @ingroup sorting_algorithms
* @param first1 An iterator. * @param first1 An iterator.
* @param first2 Another iterator. * @param first2 Another iterator.
* @param last1 Another iterator. * @param last1 Another iterator.
@ -5329,6 +5393,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Sort the elements of a sequence, preserving the relative order * @brief Sort the elements of a sequence, preserving the relative order
* of equivalent elements. * of equivalent elements.
* @ingroup sorting_algorithms
* @param first An iterator. * @param first An iterator.
* @param last Another iterator. * @param last Another iterator.
* @return Nothing. * @return Nothing.
@ -5369,6 +5434,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Sort the elements of a sequence using a predicate for comparison, * @brief Sort the elements of a sequence using a predicate for comparison,
* preserving the relative order of equivalent elements. * preserving the relative order of equivalent elements.
* @ingroup sorting_algorithms
* @param first An iterator. * @param first An iterator.
* @param last Another iterator. * @param last Another iterator.
* @param comp A comparison functor. * @param comp A comparison functor.
@ -5413,6 +5479,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Return the union of two sorted ranges. * @brief Return the union of two sorted ranges.
* @ingroup set_algorithms
* @param first1 Start of first range. * @param first1 Start of first range.
* @param last1 End of first range. * @param last1 End of first range.
* @param first2 Start of second range. * @param first2 Start of second range.
@ -5478,6 +5545,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Return the union of two sorted ranges using a comparison functor. * @brief Return the union of two sorted ranges using a comparison functor.
* @ingroup set_algorithms
* @param first1 Start of first range. * @param first1 Start of first range.
* @param last1 End of first range. * @param last1 End of first range.
* @param first2 Start of second range. * @param first2 Start of second range.
@ -5546,6 +5614,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Return the intersection of two sorted ranges. * @brief Return the intersection of two sorted ranges.
* @ingroup set_algorithms
* @param first1 Start of first range. * @param first1 Start of first range.
* @param last1 End of first range. * @param last1 End of first range.
* @param first2 Start of second range. * @param first2 Start of second range.
@ -5600,6 +5669,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Return the intersection of two sorted ranges using comparison * @brief Return the intersection of two sorted ranges using comparison
* functor. * functor.
* @ingroup set_algorithms
* @param first1 Start of first range. * @param first1 Start of first range.
* @param last1 End of first range. * @param last1 End of first range.
* @param first2 Start of second range. * @param first2 Start of second range.
@ -5657,6 +5727,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Return the difference of two sorted ranges. * @brief Return the difference of two sorted ranges.
* @ingroup set_algorithms
* @param first1 Start of first range. * @param first1 Start of first range.
* @param last1 End of first range. * @param last1 End of first range.
* @param first2 Start of second range. * @param first2 Start of second range.
@ -5715,6 +5786,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Return the difference of two sorted ranges using comparison * @brief Return the difference of two sorted ranges using comparison
* functor. * functor.
* @ingroup set_algorithms
* @param first1 Start of first range. * @param first1 Start of first range.
* @param last1 End of first range. * @param last1 End of first range.
* @param first2 Start of second range. * @param first2 Start of second range.
@ -5776,6 +5848,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Return the symmetric difference of two sorted ranges. * @brief Return the symmetric difference of two sorted ranges.
* @ingroup set_algorithms
* @param first1 Start of first range. * @param first1 Start of first range.
* @param last1 End of first range. * @param last1 End of first range.
* @param first2 Start of second range. * @param first2 Start of second range.
@ -5839,6 +5912,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Return the symmetric difference of two sorted ranges using * @brief Return the symmetric difference of two sorted ranges using
* comparison functor. * comparison functor.
* @ingroup set_algorithms
* @param first1 Start of first range. * @param first1 Start of first range.
* @param last1 End of first range. * @param last1 End of first range.
* @param first2 Start of second range. * @param first2 Start of second range.
@ -5907,6 +5981,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Return the minimum element in a range. * @brief Return the minimum element in a range.
* @ingroup sorting_algorithms
* @param first Start of range. * @param first Start of range.
* @param last End of range. * @param last End of range.
* @return Iterator referencing the first instance of the smallest value. * @return Iterator referencing the first instance of the smallest value.
@ -5932,6 +6007,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Return the minimum element in a range using comparison functor. * @brief Return the minimum element in a range using comparison functor.
* @ingroup sorting_algorithms
* @param first Start of range. * @param first Start of range.
* @param last End of range. * @param last End of range.
* @param comp Comparison functor. * @param comp Comparison functor.
@ -5961,6 +6037,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Return the maximum element in a range. * @brief Return the maximum element in a range.
* @ingroup sorting_algorithms
* @param first Start of range. * @param first Start of range.
* @param last End of range. * @param last End of range.
* @return Iterator referencing the first instance of the largest value. * @return Iterator referencing the first instance of the largest value.
@ -5986,6 +6063,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
/** /**
* @brief Return the maximum element in a range using comparison functor. * @brief Return the maximum element in a range using comparison functor.
* @ingroup sorting_algorithms
* @param first Start of range. * @param first Start of range.
* @param last End of range. * @param last End of range.
* @param comp Comparison functor. * @param comp Comparison functor.
@ -6012,8 +6090,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
return __result; return __result;
} }
/* @} */ // group algorithms
_GLIBCXX_END_NESTED_NAMESPACE _GLIBCXX_END_NESTED_NAMESPACE
#endif /* _STL_ALGO_H */ #endif /* _STL_ALGO_H */

View file

@ -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)
/** /**
* @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)
/** /**
* @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)
/** /**
* @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)
/** /**
* @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)
/** /**
* @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)
/** /**
* @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)
/** /**
* @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)
#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)
/** /**
* @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)
#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)
/** /**
* @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)
/** /**
* @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)
__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)
/** /**
* @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)
/** /**
* @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)
/** /**
* @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)
/** /**
* @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)
/** /**
* @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)
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

View file

@ -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

View file

@ -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

View file

@ -1,6 +1,6 @@
// 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 @@
_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)
* @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)
* @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)
* @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)
* @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)
* @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)
* @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)
* @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)
* @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)
* @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)
* @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)
* @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)
* @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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)
/** /**
* @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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)
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 */

View file

@ -1,6 +1,6 @@
// -*- 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 @@
_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
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

View file

@ -1,6 +1,6 @@
// -*- 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 @@
_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)
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

View file

@ -1,6 +1,7 @@
// 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)
/** /**
* @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>

View file

@ -1,6 +1,7 @@
// 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)
}; };
}; };
/// 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
{ {

View file

@ -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

View file

@ -1,6 +1,6 @@
// <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)
/** /**
* @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

View file

@ -1,6 +1,6 @@
// 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)
/** /**
* @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

View file

@ -1,6 +1,6 @@
// 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)
* 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

View file

@ -1,6 +1,7 @@
// 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)
/** /**
* @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

View file

@ -1,6 +1,6 @@
// 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)
}; };
/// 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
{ {

View file

@ -1,6 +1,6 @@
// -*- 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)
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)
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
{ {

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
// <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 @@
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
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
} }
}; };
/// 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
__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
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
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
}; };
#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
#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

View file

@ -1,7 +1,7 @@
// 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 @@
_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)
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)
// 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)
#endif #endif
#endif #endif
// @} group complex_numbers
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)

View file

@ -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
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

View file

@ -1,7 +1,7 @@
// 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)
// [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)
// [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)
// [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)
// [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

View file

@ -1,7 +1,7 @@
// 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)
// [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)
// 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.

View file

@ -1,6 +1,6 @@
// <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 @@
# 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 */

View file

@ -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
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
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
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
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

View file

@ -1,7 +1,7 @@
// 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)
// [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

View file

@ -1,6 +1,6 @@
// <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 @@
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
/** /**
* @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
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

View file

@ -1,7 +1,7 @@
// 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)
// [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)
// [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)
// [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)
// [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

View file

@ -1,6 +1,6 @@
// 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 @@
_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)
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 */

View file

@ -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:

View file

@ -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
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
} }
#endif #endif
} }
// @} group threads
} }
#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1 #endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1

View file

@ -1,6 +1,6 @@
// <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 @@
namespace std namespace std
{ {
/** @addtogroup metaprogramming
* @{
*/
// Primary classification traits. // Primary classification traits.
/// is_lvalue_reference /// is_lvalue_reference
@ -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
// 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
// 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
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
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__

View file

@ -1,7 +1,7 @@
// 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
@ -94,6 +94,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.
* *
@ -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
_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)
#undef _DEFINE_BINARY_OPERATOR #undef _DEFINE_BINARY_OPERATOR
// @} group numeric_arrays
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
#endif /* _GLIBCXX_VALARRAY */ #endif /* _GLIBCXX_VALARRAY */

View file

@ -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

View file

@ -1,6 +1,6 @@
// 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
{ {
_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
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
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
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
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
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
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
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
std::complex<__type>(__y)); std::complex<__type>(__y));
} }
// @} group complex_numbers
_GLIBCXX_END_NAMESPACE_TR1 _GLIBCXX_END_NAMESPACE_TR1
} }

View file

@ -1,6 +1,6 @@
// 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
/// 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

View file

@ -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
// [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
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
} }

View file

@ -1,6 +1,6 @@
// 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
{ {
_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
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
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
: 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
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
|| 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
_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
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
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
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
#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
} }

View file

@ -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
* (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

View file

@ -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
* (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

View file

@ -1,6 +1,6 @@
// 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 @@
#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();

View file

@ -1,6 +1,7 @@
// 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
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
} // 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

View file

@ -1,7 +1,7 @@
// 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.
@ -45,6 +45,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.
* *
@ -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

View file

@ -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
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
#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
~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
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++"

View file

@ -1,7 +1,7 @@
// 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
{ {
/** /**
* @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. */

View file

@ -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
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:

View file

@ -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()
// { 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" }

View file

@ -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()
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" }

View file

@ -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()
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" }

View file

@ -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()
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" }

View file

@ -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()
// { 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" }

View file

@ -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()
// { 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" }

View file

@ -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()
// { 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" }

View file

@ -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()
// { 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" }

View file

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

View file

@ -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 }

View file

@ -1,6 +1,6 @@
// 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 @@
// 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>

View file

@ -1,6 +1,6 @@
// 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 @@
// 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>

View file

@ -1,6 +1,6 @@
// 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 @@
// 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>

View file

@ -1,6 +1,6 @@
// 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 @@
// 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>

View file

@ -1,6 +1,6 @@
// 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 @@
// 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>

View file

@ -1,6 +1,6 @@
// 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 @@
// 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>

View file

@ -1,6 +1,6 @@
// 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 @@
// 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>

View file

@ -1,6 +1,6 @@
// 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 @@
// 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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -1,6 +1,6 @@
// { 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()
} }
// { 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 }

View file

@ -1,6 +1,6 @@
// { 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()
} }
// { 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 }

View file

@ -1,7 +1,7 @@
// { 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()
} }
// { 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" }

View file

@ -1,7 +1,7 @@
// { 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()
} }
// { 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" }

View file

@ -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 }

View file

@ -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 }

View file

@ -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 }

View file

@ -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 }

Some files were not shown because too many files have changed in this diff Show more