+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>
* doc/doxygen/doxygroups.cc: Move algorithm groups into algorithmfwd.h.
2009-02-03 Johannes Singler <singler@ira.uka.de>
- * include/parallel/algorithmfwd.h:
- Add parallelism default for many declarations.
- * include/parallel/numericfwd.h: Likewise.
- * include/parallel/iterator.h: Use iterator_traits as usual.
- * include/parallel/par_loop.h:
- Include equally_split.h.
- (for_each_template_random_access_ed):
- Avoid calling the Result default constructor.
- * include/parallel/numeric: Replace
- for_each_template_random_access by
- for_each_template_random_access_ed in numeric functions.
+ * include/parallel/algorithmfwd.h:
+ Add parallelism default for many declarations.
+ * include/parallel/numericfwd.h: Likewise.
+ * include/parallel/iterator.h: Use iterator_traits as usual.
+ * include/parallel/par_loop.h:
+ Include equally_split.h.
+ (for_each_template_random_access_ed):
+ Avoid calling the Result default constructor.
+ * include/parallel/numeric: Replace
+ for_each_template_random_access by
+ for_each_template_random_access_ed in numeric functions.
2009-02-02 Benjamin Kosnik <bkoz@redhat.com>
* config/os/gnu-linux/ldbl-extra.ver: Tweak.
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
* crossconfig.m4: Use GLIBCXX_CHECK_MATH_SUPPORT and
/** @namespace std::tr1::__detail
* @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
* @brief GNU extensions for public use.
*/
* @brief GNU implemenation details, not for public use or
* 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
-
// // // // // // // // // // // // // // // // // // // // // // // //
/**
<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
Containers are collections of objects.
<a href="tables.html">tables</a>.
The standard containers are further refined into
-@link Sequences Sequences@endlink and
-@link Assoc_containers Associative Containers@endlink.
-@link Unordered_assoc_containers Unordered Associative Containers@endlink.
+@link sequences Sequences@endlink and
+@link associative_containers Associative Containers@endlink.
+@link unordered_associative_containers Unordered Associative Containers@endlink.
*/
/** @defgroup sequences Sequences
All unordered associative containers must meet certain requirements,
summarized in <a href="tables.html">tables</a>. */
-// // // // // // // // // // // // // // // // // // // // // // // //
-/* * @defgroup groupname description of group
-placeholder text
-*/
+/**
+ * @defgroup diagnostics Diagnostics
+ *
+ * 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.
+ */
# hierarchy of group names into alphabetical order. If set to NO (the default)
# 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
# sorted by fully-qualified names, including namespaces. If set to
# parameters in a documented function, or documenting parameters that
# 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
# functions that are documented, but have no documentation for their parameters
# "myfile.cpp" or directories like "/usr/src/myproject". Separate the
# 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++/exception \
+ @srcdir@/libsupc++/exception_ptr.h \
@srcdir@/libsupc++/initializer_list \
@srcdir@/libsupc++/new \
@srcdir@/libsupc++/typeinfo \
include/tr1_impl/unordered_map \
include/tr1_impl/unordered_set \
include/tr1_impl/utility \
+ include/tr1_impl \
+ include/tr1 \
include/ \
include/@host_alias@/bits \
include/backward \
include/bits \
+ include/bits/shared_ptr.h \
include/debug \
include/parallel \
- include/tr1 \
- include/tr1_impl \
include/ext \
include/ext/pb_ds \
- include/ext/pb_ds/detail \
- @srcdir@/doc/doxygen/doxygroups.cc
+ include/ext/pb_ds/detail
# 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
__GTHREADS \
_GLIBCXX_HAS_GTHREADS \
__GXX_EXPERIMENTAL_CXX0X__ \
+ _GLIBCXX_INCLUDE_AS_CXX0X \
"_GLIBCXX_STD_P= " \
"_GLIBCXX_STD_D= " \
_GLIBCXX_STD=std \
_GLIBCXX_END_NAMESPACE=} \
_GLIBCXX_END_NESTED_NAMESPACE=} \
"_GLIBCXX_TEMPLATE_ARGS=... " \
- _GLIBCXX_INCLUDE_AS_CXX0X \
_GLIBCXX_DEPRECATED \
_GLIBCXX_USE_WCHAR_T \
_GLIBCXX_USE_LONG_LONG \
_GLIBCXX_USE_C99_STDINT_TR1 \
+ _GLIBCXX_USE_SCHED_YIELD \
+ _GLIBCXX_USE_NANOSLEEP \
__glibcxx_function_requires=// \
__glibcxx_class_requires=// \
__glibcxx_class_requires2=// \
_GLIBCXX_BEGIN_NAMESPACE(std)
// 20.3.6 binders
- /** @defgroup binder Binder Classes
+ /** @defgroup binders Binder Classes
* @ingroup functors
*
* Binders turn functions/functors with two arguments into functors with
*
* @{
*/
- /// One of the @link binder binder functors@endlink.
+ /// One of the @link binders binder functors@endlink.
template<typename _Operation>
class binder1st
: public unary_function<typename _Operation::second_argument_type,
{ return op(value, __x); }
} _GLIBCXX_DEPRECATED_ATTR;
- /// One of the @link binder binder functors@endlink.
+ /// One of the @link binders binder functors@endlink.
template<typename _Operation, typename _Tp>
inline binder1st<_Operation>
bind1st(const _Operation& __fn, const _Tp& __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>
class binder2nd
: public unary_function<typename _Operation::first_argument_type,
{ return op(__x, value); }
} _GLIBCXX_DEPRECATED_ATTR;
- /// One of the @link binder binder functors@endlink.
+ /// One of the @link binders binder functors@endlink.
template<typename _Operation, typename _Tp>
inline binder2nd<_Operation>
bind2nd(const _Operation& __fn, const _Tp& __x)
*/
/**
- * @defgroup set_algorithms Set Operation Algorithms
+ * @defgroup mutating_algorithms Mutating Algorithms
+ * @ingroup algorithms
+ */
+
+ /**
+ * @defgroup non_mutating_algorithms Non-Mutating Algorithms
+ * @ingroup algorithms
+ */
+
+ /**
+ * @defgroup sorting_algorithms Sorting Algorithms
* @ingroup algorithms
+ */
+
+ /**
+ * @defgroup set_algorithms Set Operation Algorithms
+ * @ingroup sorting_algorithms
*
* These algorithms are common set operations performed on sequences
* that are already sorted. The number of comparisons will be
/**
* @defgroup binary_search_algorithms Binary Search Algorithms
- * @ingroup algorithms
+ * @ingroup sorting_algorithms
*
* These algorithms are variations of a classic binary search, and
* all assume that the sequence being searched is already sorted.
// 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.
//
// This file is part of the GNU ISO C++ Library. This library is free
_GLIBCXX_BEGIN_NAMESPACE(std)
+ /**
+ * @defgroup allocators Allocators
+ * @ingroup memory
+ *
+ * Classes encapsulating memory operations.
+ */
+
template<typename _Tp>
class allocator;
/**
* @brief The "standard" allocator, as per [20.4].
+ * @ingroup allocators
*
* Further details:
* http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt04ch11.html
// Iostreams base classes -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-// 2006, 2007, 2008
+// 2006, 2007, 2008, 2009
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// 27.4.5 Template class basic_ios
/**
* @brief Virtual base class for all stream classes.
+ * @ingroup io
*
* Most of the member functions called dispatched on stream objects
* (e.g., @c std::cout.foo(bar);) are consolidated in this class.
* @class basic_string basic_string.h <string>
* @brief Managing sequences of characters and character-like objects.
*
- * @ingroup containers
* @ingroup sequences
*
* Meets the requirements of a <a href="tables.html#65">container</a>, a
* @brief A standard container with linear time access to elements,
* and fixed time insertion/deletion at any point in the sequence.
*
- * @ingroup containers
* @ingroup sequences
*
* Meets the requirements of a <a href="tables.html#65">container</a>, a
// 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.
//
// This file is part of the GNU ISO C++ Library. This library is free
_GLIBCXX_BEGIN_NAMESPACE(std)
+ /**
+ * @addtogroup numeric_arrays
+ * @{
+ */
+
/**
* @brief Class defining multi-dimensional subset of an array.
*
return *this;
}
+ // @} group numeric_arrays
+
_GLIBCXX_END_NAMESPACE
#endif /* _GSLICE_H */
// 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.
//
// This file is part of the GNU ISO C++ Library. This library is free
_GLIBCXX_BEGIN_NAMESPACE(std)
+ /**
+ * @addtogroup numeric_arrays
+ * @{
+ */
+
/**
* @brief Reference to multi-dimensional subset of an array.
*
#undef _DEFINE_VALARRAY_OPERATOR
+ // @} group numeric_arrays
+
_GLIBCXX_END_NAMESPACE
#endif /* _GSLICE_ARRAY_H */
// 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.
//
// This file is part of the GNU ISO C++ Library. This library is free
_GLIBCXX_BEGIN_NAMESPACE(std)
+ /**
+ * @addtogroup numeric_arrays
+ * @{
+ */
+
/**
* @brief Reference to arbitrary subset of an array.
*
#undef _DEFINE_VALARRAY_OPERATOR
+ // @} group numeric_arrays
+
_GLIBCXX_END_NAMESPACE
#endif /* _INDIRECT_ARRAY_H */
// Iostreams base classes -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-// 2006, 2007, 2008
+// 2006, 2007, 2008, 2009
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// 27.4.2 Class ios_base
/**
* @brief The base of the I/O class hierarchy.
+ * @ingroup io
*
* 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
{
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
{
public:
// 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.
//
// This file is part of the GNU ISO C++ Library. This library is free
_GLIBCXX_BEGIN_NAMESPACE(std)
+ /**
+ * @addtogroup numeric_arrays
+ * @{
+ */
+
/**
* @brief Reference to selected subset of an array.
*
#undef _DEFINE_VALARRAY_OPERATOR
+ // @} group numeric_arrays
+
_GLIBCXX_END_NAMESPACE
#endif /* _MASK_ARRAY_H */
-// <bits/shared_ptr.h> -*- C++ -*-
+// shared_ptr and weak_ptr implementation -*- C++ -*-
// Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
//
# error C++0x header cannot be included from TR1 header
#endif
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
+ /**
+ * @addtogroup pointer_abstractions
+ * @{
+ */
+
// counted ptr with no deleter or allocator support
template<typename _Ptr, _Lock_policy _Lp>
class _Sp_counted_ptr
{ }
- /**
- * @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>
class __shared_ptr
{
mutable __weak_ptr<_Tp, _Lp> _M_weak_this;
};
-
- /// shared_ptr
- // The actual shared_ptr, with forwarding constructors and
- // assignment operators.
+ /**
+ * @brief 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>
class shared_ptr
: public __shared_ptr<_Tp>
}
- /// weak_ptr
- // The actual weak_ptr, with forwarding constructors and
- // assignment operators.
+ /**
+ * @brief A smart pointer with weak semantics.
+ *
+ * With forwarding constructors and assignment operators.
+ */
template<typename _Tp>
class weak_ptr
: public __weak_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>
class enable_shared_from_this
{
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 __args Arguments for the @a _Tp object's constructor.
* @return A shared_ptr that owns the newly created object.
std::forward<_Args>(__args)...);
}
-}
+ // @} group pointer_abstractions
+
+_GLIBCXX_END_NAMESPACE
// 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.
//
// This file is part of the GNU ISO C++ Library. This library is free
_GLIBCXX_BEGIN_NAMESPACE(std)
+ /**
+ * @addtogroup numeric_arrays
+ * @{
+ */
+
/**
* @brief Class defining one-dimensional subset of an array.
*
#undef _DEFINE_VALARRAY_OPERATOR
+ // @} group numeric_arrays
+
_GLIBCXX_END_NAMESPACE
#endif /* _SLICE_ARRAY_H */
_GLIBCXX_BEGIN_NAMESPACE(std)
- /**
- * @addtogroup algorithms Algorithms
- * @{
- */
-
/**
* @brief Find the median of three values.
* @param a A value.
/**
* @brief Find last matching subsequence in a sequence.
+ * @ingroup non_mutating_algorithms
* @param first1 Start of range to search.
* @param last1 End of range to search.
* @param first2 Start of sequence to match.
/**
* @brief Find last matching subsequence in a sequence using a predicate.
+ * @ingroup non_mutating_algorithms
* @param first1 Start of range to search.
* @param last1 End of range to search.
* @param first2 Start of sequence to match.
/**
* @brief Checks that a predicate is true for all the elements
* of a sequence.
+ * @ingroup non_mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param pred A predicate.
/**
* @brief Checks that a predicate is false for all the elements
* of a sequence.
+ * @ingroup non_mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param pred A predicate.
/**
* @brief Checks that a predicate is false for at least an element
* of a sequence.
+ * @ingroup non_mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param pred A predicate.
/**
* @brief Find the first element in a sequence for which a
* predicate is false.
+ * @ingroup non_mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param pred A predicate.
/**
* @brief Checks whether the sequence is partitioned.
+ * @ingroup mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param pred A predicate.
/**
* @brief Find the partition point of a partitioned range.
+ * @ingroup mutating_algorithms
* @param first An iterator.
* @param last Another iterator.
* @param pred A predicate.
/**
* @brief Copy a sequence, removing elements of a given value.
+ * @ingroup mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param result An output iterator.
/**
* @brief Copy a sequence, removing elements for which a predicate is true.
+ * @ingroup mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param result An output iterator.
#ifdef __GXX_EXPERIMENTAL_CXX0X__
/**
* @brief Copy the elements of a sequence for which a predicate is true.
+ * @ingroup mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param result An output iterator.
/**
* @brief Copies the range [first,first+n) into [result,result+n).
+ * @ingroup mutating_algorithms
* @param first An input iterator.
* @param n The number of elements to copy.
* @param result An output iterator.
/**
* @brief Copy the elements of a sequence to separate output sequences
* depending on the truth value of a predicate.
+ * @ingroup mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param out_true An output iterator.
/**
* @brief Remove elements from a sequence.
+ * @ingroup mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param value The value to be removed.
/**
* @brief Remove elements from a sequence using a predicate.
+ * @ingroup mutating_algorithms
* @param first A forward iterator.
* @param last A forward iterator.
* @param pred A predicate.
/**
* @brief Remove consecutive duplicate values from a sequence.
+ * @ingroup mutating_algorithms
* @param first A forward iterator.
* @param last A forward iterator.
* @return An iterator designating the end of the resulting sequence.
/**
* @brief Remove consecutive values from a sequence using a predicate.
+ * @ingroup mutating_algorithms
* @param first A forward iterator.
* @param last A forward iterator.
* @param binary_pred A binary predicate.
/**
* @brief Reverse a sequence.
+ * @ingroup mutating_algorithms
* @param first A bidirectional iterator.
* @param last A bidirectional iterator.
* @return reverse() returns no value.
/**
* @brief Copy a sequence, reversing its elements.
+ * @ingroup mutating_algorithms
* @param first A bidirectional iterator.
* @param last A bidirectional iterator.
* @param result An output iterator.
/**
* @brief Rotate the elements of a sequence.
+ * @ingroup mutating_algorithms
* @param first A forward iterator.
* @param middle A forward iterator.
* @param last A forward iterator.
/**
* @brief Copy a sequence, rotating its elements.
+ * @ingroup mutating_algorithms
* @param first A forward iterator.
* @param middle A forward iterator.
* @param last A forward iterator.
/**
* @brief Move elements for which a predicate is true to the beginning
* of a sequence, preserving relative ordering.
+ * @ingroup mutating_algorithms
* @param first A forward iterator.
* @param last A forward iterator.
* @param pred A predicate functor.
/**
* @brief Copy the smallest elements of a sequence.
+ * @ingroup sorting_algorithms
* @param first An iterator.
* @param last Another iterator.
* @param result_first A random-access iterator.
/**
* @brief Copy the smallest elements of a sequence using a predicate for
* comparison.
+ * @ingroup sorting_algorithms
* @param first An input iterator.
* @param last Another input iterator.
* @param result_first A random-access iterator.
/**
* @brief Finds the first position in which @a val could be inserted
* without changing the ordering.
+ * @ingroup binary_search_algorithms
* @param first An iterator.
* @param last Another iterator.
* @param val The search term.
/**
* @brief Finds the last position in which @a val could be inserted
* without changing the ordering.
+ * @ingroup binary_search_algorithms
* @param first An iterator.
* @param last Another iterator.
* @param val The search term.
/**
* @brief Finds the last position in which @a val could be inserted
* without changing the ordering.
+ * @ingroup binary_search_algorithms
* @param first An iterator.
* @param last Another iterator.
* @param val The search term.
/**
* @brief Finds the largest subrange in which @a val could be inserted
* at any place in it without changing the ordering.
+ * @ingroup binary_search_algorithms
* @param first An iterator.
* @param last Another iterator.
* @param val The search term.
/**
* @brief Determines whether an element exists in a range.
+ * @ingroup binary_search_algorithms
* @param first An iterator.
* @param last Another iterator.
* @param val The search term.
* @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
* that, use std::find or a container's specialized find member functions.
/**
* @brief Determines whether an element exists in a range.
+ * @ingroup binary_search_algorithms
* @param first An iterator.
* @param last Another iterator.
* @param val The search term.
* @param comp A functor to use for comparisons.
* @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
* that, use std::find or a container's specialized find member functions.
/**
* @brief Merges two sorted ranges in place.
+ * @ingroup sorting_algorithms
* @param first An iterator.
* @param middle Another iterator.
* @param last Another iterator.
/**
* @brief Merges two sorted ranges in place.
+ * @ingroup sorting_algorithms
* @param first An iterator.
* @param middle Another iterator.
* @param last Another iterator.
/**
* @brief Determines whether all elements of a sequence exists in a range
* using comparison.
+ * @ingroup set_algorithms
* @param first1 Start of search range.
* @param last1 End of search range.
* @param first2 Start of sequence
/**
* @brief Permute range into the next "dictionary" ordering.
+ * @ingroup sorting_algorithms
* @param first Start of range.
* @param last End of range.
* @return False if wrapped to first permutation, true otherwise.
/**
* @brief Permute range into the next "dictionary" ordering using
* comparison functor.
+ * @ingroup sorting_algorithms
* @param first Start of range.
* @param last End of range.
* @param comp A comparison functor.
/**
* @brief Permute range into the previous "dictionary" ordering.
+ * @ingroup sorting_algorithms
* @param first Start of range.
* @param last End of range.
* @return False if wrapped to last permutation, true otherwise.
/**
* @brief Permute range into the previous "dictionary" ordering using
* comparison functor.
+ * @ingroup sorting_algorithms
* @param first Start of range.
* @param last End of range.
* @param comp A comparison functor.
/**
* @brief Copy a sequence, replacing each value for which a predicate
* returns true with another value.
+ * @ingroup mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param result An output iterator.
#ifdef __GXX_EXPERIMENTAL_CXX0X__
/**
* @brief Determines whether the elements of a sequence are sorted.
+ * @ingroup sorting_algorithms
* @param first An iterator.
* @param last Another iterator.
* @return True if the elements are sorted, false otherwise.
/**
* @brief Determines whether the elements of a sequence are sorted
* according to a comparison functor.
+ * @ingroup sorting_algorithms
* @param first An iterator.
* @param last Another iterator.
* @param comp A comparison functor.
/**
* @brief Determines the end of a sorted sequence.
+ * @ingroup sorting_algorithms
* @param first An iterator.
* @param last Another iterator.
* @return An iterator pointing to the last iterator i in [first, last)
/**
* @brief Determines the end of a sorted sequence using comparison functor.
+ * @ingroup sorting_algorithms
* @param first An iterator.
* @param last Another iterator.
* @param comp A comparison functor.
/**
* @brief Determines min and max at once as an ordered pair.
+ * @ingroup sorting_algorithms
* @param a A 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.
/**
* @brief Determines min and max at once as an ordered pair.
+ * @ingroup sorting_algorithms
* @param a A thing of arbitrary type.
* @param b Another thing of arbitrary type.
* @param comp A @link comparison_functor comparison functor@endlink.
/**
* @brief Return a pair of iterators pointing to the minimum and maximum
* elements in a range.
+ * @ingroup sorting_algorithms
* @param first Start of range.
* @param last End of range.
* @return make_pair(m, M), where m is the first iterator i in
/**
* @brief Return a pair of iterators pointing to the minimum and maximum
* elements in a range.
+ * @ingroup sorting_algorithms
* @param first Start of range.
* @param last End of range.
* @param comp Comparison functor.
}
#endif // __GXX_EXPERIMENTAL_CXX0X__
- /* @} */ // group algorithms
-
_GLIBCXX_END_NAMESPACE
_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
- /**
- * @addtogroup algorithms Algorithms
- * @{
- */
-
/**
* @brief Apply a function to every element of a sequence.
+ * @ingroup non_mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param f A unary function object.
/**
* @brief Find the first occurrence of a value in a sequence.
+ * @ingroup non_mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param val The value to find.
/**
* @brief Find the first element in a sequence for which a
* predicate is true.
+ * @ingroup non_mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param pred A predicate.
/**
* @brief Find element from a set in a sequence.
+ * @ingroup non_mutating_algorithms
* @param first1 Start of range to search.
* @param last1 End of range to search.
* @param first2 Start of match candidates.
/**
* @brief Find element from a set in a sequence using a predicate.
+ * @ingroup non_mutating_algorithms
* @param first1 Start of range to search.
* @param last1 End of range to search.
* @param first2 Start of match candidates.
/**
* @brief Find two adjacent values in a sequence that are equal.
+ * @ingroup non_mutating_algorithms
* @param first A forward iterator.
* @param last A forward iterator.
* @return The first iterator @c i such that @c i and @c i+1 are both
/**
* @brief Find two adjacent values in a sequence using a predicate.
+ * @ingroup non_mutating_algorithms
* @param first A forward iterator.
* @param last A forward iterator.
* @param binary_pred A binary predicate.
/**
* @brief Count the number of copies of a value in a sequence.
+ * @ingroup non_mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param value The value to be counted.
/**
* @brief Count the elements of a sequence for which a predicate is true.
+ * @ingroup non_mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param pred A predicate.
/**
* @brief Search a sequence for a matching sub-sequence.
+ * @ingroup non_mutating_algorithms
* @param first1 A forward iterator.
* @param last1 A forward iterator.
* @param first2 A forward iterator.
/**
* @brief Search a sequence for a matching sub-sequence using a predicate.
+ * @ingroup non_mutating_algorithms
* @param first1 A forward iterator.
* @param last1 A forward iterator.
* @param first2 A forward iterator.
/**
* @brief Search a sequence for a number of consecutive values.
+ * @ingroup non_mutating_algorithms
* @param first A forward iterator.
* @param last A forward iterator.
* @param count The number of consecutive values.
/**
* @brief Search a sequence for a number of consecutive values using a
* predicate.
+ * @ingroup non_mutating_algorithms
* @param first A forward iterator.
* @param last A forward iterator.
* @param count The number of consecutive values.
/**
* @brief Perform an operation on a sequence.
+ * @ingroup mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param result An output iterator.
/**
* @brief Perform an operation on corresponding elements of two sequences.
+ * @ingroup mutating_algorithms
* @param first1 An input iterator.
* @param last1 An input iterator.
* @param first2 An input iterator.
/**
* @brief Replace each occurrence of one value in a sequence with another
* value.
+ * @ingroup mutating_algorithms
* @param first A forward iterator.
* @param last A forward iterator.
* @param old_value The value to be replaced.
/**
* @brief Replace each value in a sequence for which a predicate returns
* true with another value.
+ * @ingroup mutating_algorithms
* @param first A forward iterator.
* @param last A forward iterator.
* @param pred A predicate.
/**
* @brief Assign the result of a function object to each value in a
* sequence.
+ * @ingroup mutating_algorithms
* @param first A forward iterator.
* @param last A forward iterator.
* @param gen A function object taking no arguments and returning
/**
* @brief Assign the result of a function object to each value in a
* sequence.
+ * @ingroup mutating_algorithms
* @param first A forward iterator.
* @param n The length of the sequence.
* @param gen A function object taking no arguments and returning
/**
* @brief Copy a sequence, removing consecutive duplicate values.
+ * @ingroup mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param result An output iterator.
/**
* @brief Copy a sequence, removing consecutive values using a predicate.
+ * @ingroup mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param result An output iterator.
/**
* @brief Randomly shuffle the elements of a sequence.
+ * @ingroup mutating_algorithms
* @param first A forward iterator.
* @param last A forward iterator.
* @return Nothing.
/**
* @brief Shuffle the elements of a sequence using a random number
* generator.
+ * @ingroup mutating_algorithms
* @param first A forward iterator.
* @param last A forward iterator.
* @param rand The RNG functor or function.
/**
* @brief Move elements for which a predicate is true to the beginning
* of a sequence.
+ * @ingroup mutating_algorithms
* @param first A forward iterator.
* @param last A forward iterator.
* @param pred A predicate functor.
/**
* @brief Sort the smallest elements of a sequence.
+ * @ingroup sorting_algorithms
* @param first An iterator.
* @param middle Another iterator.
* @param last Another iterator.
/**
* @brief Sort the smallest elements of a sequence using a predicate
* for comparison.
+ * @ingroup sorting_algorithms
* @param first An iterator.
* @param middle Another iterator.
* @param last Another iterator.
/**
* @brief Sort a sequence just enough to find a particular position.
+ * @ingroup sorting_algorithms
* @param first An iterator.
* @param nth Another iterator.
* @param last Another iterator.
/**
* @brief Sort a sequence just enough to find a particular position
* using a predicate for comparison.
+ * @ingroup sorting_algorithms
* @param first An iterator.
* @param nth Another iterator.
* @param last Another iterator.
/**
* @brief Sort the elements of a sequence.
+ * @ingroup sorting_algorithms
* @param first An iterator.
* @param last Another iterator.
* @return Nothing.
/**
* @brief Sort the elements of a sequence using a predicate for comparison.
+ * @ingroup sorting_algorithms
* @param first An iterator.
* @param last Another iterator.
* @param comp A comparison functor.
/**
* @brief Merges two sorted ranges.
+ * @ingroup sorting_algorithms
* @param first1 An iterator.
* @param first2 Another iterator.
* @param last1 Another iterator.
/**
* @brief Merges two sorted ranges.
+ * @ingroup sorting_algorithms
* @param first1 An iterator.
* @param first2 Another iterator.
* @param last1 Another iterator.
/**
* @brief Sort the elements of a sequence, preserving the relative order
* of equivalent elements.
+ * @ingroup sorting_algorithms
* @param first An iterator.
* @param last Another iterator.
* @return Nothing.
/**
* @brief Sort the elements of a sequence using a predicate for comparison,
* preserving the relative order of equivalent elements.
+ * @ingroup sorting_algorithms
* @param first An iterator.
* @param last Another iterator.
* @param comp A comparison functor.
/**
* @brief Return the union of two sorted ranges.
+ * @ingroup set_algorithms
* @param first1 Start of first range.
* @param last1 End of first range.
* @param first2 Start of second range.
/**
* @brief Return the union of two sorted ranges using a comparison functor.
+ * @ingroup set_algorithms
* @param first1 Start of first range.
* @param last1 End of first range.
* @param first2 Start of second range.
/**
* @brief Return the intersection of two sorted ranges.
+ * @ingroup set_algorithms
* @param first1 Start of first range.
* @param last1 End of first range.
* @param first2 Start of second range.
/**
* @brief Return the intersection of two sorted ranges using comparison
* functor.
+ * @ingroup set_algorithms
* @param first1 Start of first range.
* @param last1 End of first range.
* @param first2 Start of second range.
/**
* @brief Return the difference of two sorted ranges.
+ * @ingroup set_algorithms
* @param first1 Start of first range.
* @param last1 End of first range.
* @param first2 Start of second range.
/**
* @brief Return the difference of two sorted ranges using comparison
* functor.
+ * @ingroup set_algorithms
* @param first1 Start of first range.
* @param last1 End of first range.
* @param first2 Start of second range.
/**
* @brief Return the symmetric difference of two sorted ranges.
+ * @ingroup set_algorithms
* @param first1 Start of first range.
* @param last1 End of first range.
* @param first2 Start of second range.
/**
* @brief Return the symmetric difference of two sorted ranges using
* comparison functor.
+ * @ingroup set_algorithms
* @param first1 Start of first range.
* @param last1 End of first range.
* @param first2 Start of second range.
/**
* @brief Return the minimum element in a range.
+ * @ingroup sorting_algorithms
* @param first Start of range.
* @param last End of range.
* @return Iterator referencing the first instance of the smallest value.
/**
* @brief Return the minimum element in a range using comparison functor.
+ * @ingroup sorting_algorithms
* @param first Start of range.
* @param last End of range.
* @param comp Comparison functor.
/**
* @brief Return the maximum element in a range.
+ * @ingroup sorting_algorithms
* @param first Start of range.
* @param last End of range.
* @return Iterator referencing the first instance of the largest value.
/**
* @brief Return the maximum element in a range using comparison functor.
+ * @ingroup sorting_algorithms
* @param first Start of range.
* @param last End of range.
* @param comp Comparison functor.
return __result;
}
- /* @} */ // group algorithms
-
_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _STL_ALGO_H */
_GLIBCXX_BEGIN_NAMESPACE(std)
- /**
- * @addtogroup algorithms Algorithms
- * @{
- */
-
// See http://gcc.gnu.org/ml/libstdc++/2004-08/msg00167.html: in a
// nutshell, we are partially implementing the resolution of DR 187,
// when it's safe, i.e., the value_types are equal.
/**
* @brief Swaps the contents of two iterators.
+ * @ingroup mutating_algorithms
* @param a An iterator.
* @param b Another iterator.
* @return Nothing.
/**
* @brief Swap the elements of two sequences.
+ * @ingroup mutating_algorithms
* @param first1 A forward iterator.
* @param last1 A forward iterator.
* @param first2 A forward iterator.
/**
* @brief This does what you think it does.
+ * @ingroup sorting_algorithms
* @param a A thing of arbitrary type.
* @param b Another thing of arbitrary type.
* @return The lesser of the parameters.
/**
* @brief This does what you think it does.
+ * @ingroup sorting_algorithms
* @param a A thing of arbitrary type.
* @param b Another thing of arbitrary type.
* @return The greater of the parameters.
/**
* @brief This does what you think it does.
+ * @ingroup sorting_algorithms
* @param a A thing of arbitrary type.
* @param b Another thing of arbitrary type.
* @param comp A @link comparison_functors comparison functor@endlink.
/**
* @brief This does what you think it does.
+ * @ingroup sorting_algorithms
* @param a A thing of arbitrary type.
* @param b Another thing of arbitrary type.
* @param comp A @link comparison_functors comparison functor@endlink.
/**
* @brief Copies the range [first,last) into result.
+ * @ingroup mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param result An output iterator.
#ifdef __GXX_EXPERIMENTAL_CXX0X__
/**
* @brief Moves the range [first,last) into result.
+ * @ingroup mutating_algorithms
* @param first An input iterator.
* @param last An input iterator.
* @param result An output iterator.
/**
* @brief Copies the range [first,last) into result.
+ * @ingroup mutating_algorithms
* @param first A bidirectional iterator.
* @param last A bidirectional iterator.
* @param result A bidirectional iterator.
#ifdef __GXX_EXPERIMENTAL_CXX0X__
/**
* @brief Moves the range [first,last) into result.
+ * @ingroup mutating_algorithms
* @param first A bidirectional iterator.
* @param last A bidirectional iterator.
* @param result A bidirectional iterator.
/**
* @brief Fills the range [first,last) with copies of value.
+ * @ingroup mutating_algorithms
* @param first A forward iterator.
* @param last A forward iterator.
* @param value A reference-to-const of arbitrary type.
/**
* @brief Fills the range [first,first+n) with copies of value.
+ * @ingroup mutating_algorithms
* @param first An output iterator.
* @param n The count of copies to perform.
* @param value A reference-to-const of arbitrary type.
__first2, __last2);
}
- /* @} */ // group algorithms
-
_GLIBCXX_END_NAMESPACE
_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
- /**
- * @addtogroup algorithms Algorithms
- * @{
- */
-
/**
* @brief Tests a range for element-wise equality.
+ * @ingroup non_mutating_algorithms
* @param first1 An input iterator.
* @param last1 An input iterator.
* @param first2 An input iterator.
/**
* @brief Tests a range for element-wise equality.
+ * @ingroup non_mutating_algorithms
* @param first1 An input iterator.
* @param last1 An input iterator.
* @param first2 An input iterator.
/**
* @brief Performs "dictionary" comparison on ranges.
+ * @ingroup sorting_algorithms
* @param first1 An input iterator.
* @param last1 An input iterator.
* @param first2 An input iterator.
/**
* @brief Performs "dictionary" comparison on ranges.
+ * @ingroup sorting_algorithms
* @param first1 An input iterator.
* @param last1 An input iterator.
* @param first2 An input iterator.
/**
* @brief Finds the places in ranges which don't match.
+ * @ingroup non_mutating_algorithms
* @param first1 An input iterator.
* @param last1 An input iterator.
* @param first2 An input iterator.
/**
* @brief Finds the places in ranges which don't match.
+ * @ingroup non_mutating_algorithms
* @param first1 An input iterator.
* @param last1 An input iterator.
* @param first2 An input iterator.
return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
}
- /* @} */ // group algorithms
-
_GLIBCXX_END_NESTED_NAMESPACE
// NB: This file is included within many other C++ includes, as a way
* really references and pointers to bool. See DR96 for details. @see
* vector for function documentation.
*
- * @ingroup containers
* @ingroup sequences
*
* In some terminology a %vector can be described as a dynamic
* @brief A standard container using fixed-size memory allocation and
* constant-time manipulation of elements at either end.
*
- * @ingroup containers
* @ingroup sequences
*
* Meets the requirements of a <a href="tables.html#65">container</a>, a
// 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.
//
// This file is part of the GNU ISO C++ Library. This library is free
_GLIBCXX_BEGIN_NAMESPACE(std)
+ /**
+ * @defgroup heap_algorithms Heap Algorithms
+ * @ingroup sorting_algorithms
+ */
+
template<typename _RandomAccessIterator, typename _Distance>
_Distance
__is_heap_until(_RandomAccessIterator __first, _Distance __n)
* @brief Push an element onto a heap.
* @param first Start of heap.
* @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
* range [first,last-1). After completion, [first,last) is a valid heap.
* @param first Start of heap.
* @param last End of heap + element.
* @param comp Comparison functor.
- * @ingroup heap
+ * @ingroup heap_algorithms
*
* 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.
* @brief Pop an element off a heap.
* @param first Start 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
* are swapped and [first,last-1) is made into a heap.
* @param first Start of heap.
* @param last End of heap.
* @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
* are swapped and [first,last-1) is made into a heap. Comparisons are
* @brief Construct a heap over a range.
* @param first Start of heap.
* @param last End of heap.
- * @ingroup heap
+ * @ingroup heap_algorithms
*
* This operation makes the elements in [first,last) into a heap.
*/
* @param first Start of heap.
* @param last End of heap.
* @param comp Comparison functor to use.
- * @ingroup heap
+ * @ingroup heap_algorithms
*
* This operation makes the elements in [first,last) into a heap.
* Comparisons are made using comp.
* @brief Sort a heap.
* @param first Start of heap.
* @param last End of heap.
- * @ingroup heap
+ * @ingroup heap_algorithms
*
* This operation sorts the valid heap in the range [first,last).
*/
* @param first Start of heap.
* @param last End of heap.
* @param comp Comparison functor to use.
- * @ingroup heap
+ * @ingroup heap_algorithms
*
* This operation sorts the valid heap in the range [first,last).
* Comparisons are made using comp.
* @param first Start of range.
* @param last End of range.
* @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
* the range [first, i) is a heap.
* @param last End of range.
* @param comp Comparison functor to use.
* @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
* the range [first, i) is a heap. Comparisons are made using comp.
* @param first Start of range.
* @param last End of range.
* @return True if range is a heap, false otherwise.
- * @ingroup heap
+ * @ingroup heap_algorithms
*/
template<typename _RandomAccessIterator>
inline bool
* @param last End of range.
* @param comp Comparison functor to use.
* @return True if range is a heap, false otherwise.
- * @ingroup heap
+ * @ingroup heap_algorithms
*/
template<typename _RandomAccessIterator, typename _Compare>
inline bool
* @brief A standard container with linear time access to elements,
* and fixed time insertion/deletion at any point in the sequence.
*
- * @ingroup containers
* @ingroup sequences
*
* Meets the requirements of a <a href="tables.html#65">container</a>, a
* @brief A standard container made up of (key,value) pairs, which can be
* retrieved based on a key, in logarithmic time.
*
- * @ingroup containers
* @ingroup associative_containers
*
* Meets the requirements of a <a href="tables.html#65">container</a>, a
* @brief A standard container made up of (key,value) pairs, which can be
* retrieved based on a key, in logarithmic time.
*
- * @ingroup containers
* @ingroup associative_containers
*
* Meets the requirements of a <a href="tables.html#65">container</a>, a
* @brief A standard container made up of elements, which can be retrieved
* in logarithmic time.
*
- * @ingroup containers
* @ingroup associative_containers
*
* Meets the requirements of a <a href="tables.html#65">container</a>, a
/**
* @brief A standard container giving FIFO behavior.
*
- * @ingroup containers
* @ingroup sequences
*
* Meets many of the requirements of a
/**
* @brief A standard container automatically sorting its contents.
*
- * @ingroup containers
* @ingroup sequences
*
* This is not a true container, but an @e adaptor. It holds
* @brief A standard container made up of unique keys, which can be
* retrieved in logarithmic time.
*
- * @ingroup containers
* @ingroup associative_containers
*
* Meets the requirements of a <a href="tables.html#65">container</a>, a
/**
* @brief A standard container giving FILO behavior.
*
- * @ingroup containers
* @ingroup sequences
*
* Meets many of the requirements of a
* @brief A standard container which offers fixed time access to
* individual elements in any order.
*
- * @ingroup containers
* @ingroup sequences
*
* Meets the requirements of a <a href="tables.html#65">container</a>, a
_GLIBCXX_BEGIN_NAMESPACE(std)
+ /**
+ * @addtogroup pointer_abstractions
+ * @{
+ */
+
/// Primary template, default_delete.
template<typename _Tp>
struct default_delete
const unique_ptr<_Up, _Up_Deleter>& __y)
{ return !(__x.get() < __y.get()); }
+ // @} group pointer_abstractions
+
_GLIBCXX_END_NAMESPACE
#endif /* _UNIQUE_PTR_H */
// -*- 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
// software; you can redistribute it and/or modify it under the
_GLIBCXX_BEGIN_NAMESPACE(std)
_GLIBCXX_BEGIN_EXTERN_C
+ /**
+ * @defgroup atomics Atomics
+ *
+ * Components for performing atomic operations.
+ * @{
+ */
+
/// Enumeration for memory_order
typedef enum memory_order
{
atomic_flag_clear_explicit(__g, __x); \
__r; })
+ // @} group atomics
+
_GLIBCXX_END_EXTERN_C
_GLIBCXX_END_NAMESPACE
// -*- C++ -*- header.
-// Copyright (C) 2008
+// Copyright (C) 2008, 2009
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
_GLIBCXX_BEGIN_NAMESPACE(std)
+ /**
+ * @addtogroup atomics
+ * @{
+ */
+
/// kill_dependency
template<typename _Tp>
inline _Tp
atomic_fetch_xor(volatile __atomic_base<_ITp>* __a, _ITp __i)
{ return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); }
+ // @} group atomics
+
_GLIBCXX_END_NAMESPACE
#endif
// 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
// software; you can redistribute it and/or modify it under the
/**
* @brief An allocator that uses previously allocated memory.
* This memory can be externally, globally, or otherwise allocated.
+ * @ingroup allocators
*/
template<typename _Tp, typename _Array = std::tr1::array<_Tp, 1> >
class array_allocator : public array_allocator_base<_Tp>
// 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
// software; you can redistribute it and/or modify it under the
};
};
- /// Primary template
+ /**
+ * @brief Bitmap Allocator, primary template.
+ * @ingroup allocators
+ */
template<typename _Tp>
class bitmap_allocator : private free_list
{
/**
* @brief A meta-allocator with debugging bits, as per [20.4].
+ * @ingroup allocators
*
* This is precisely the allocator defined in the C++ Standard.
* - all allocation calls operator new
// <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
// software; you can redistribute it and/or modify it under the
/**
* @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
* pointer type. (See ext/pointer.h) Memory allocation in this example
// 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.
//
// This file is part of the GNU ISO C++ Library. This library is free
/**
* @brief An allocator that uses malloc.
+ * @ingroup allocators
*
* This is precisely the allocator defined in the C++ Standard.
* - all allocation calls malloc
// 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.
//
// This file is part of the GNU ISO C++ Library. This library is free
* size per thread plus a "global" one. Steps are taken to limit
* the per thread freelist sizes (by returning excess back to
* the "global" list).
+ * @ingroup allocators
*
* Further details:
* http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt12ch32.html
// 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
// software; you can redistribute it and/or modify it under the
/**
* @brief An allocator that uses global new, as per [20.4].
+ * @ingroup allocators
*
* This is precisely the allocator defined in the C++ Standard.
* - all allocation calls operator new
// 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.
//
// This file is part of the GNU ISO C++ Library. This library is free
};
- /// class __pool_alloc.
+ /**
+ * @brief Allocator using a memory pool with a single lock.
+ * @ingroup allocators
+ */
template<typename _Tp>
class __pool_alloc : private __pool_alloc_base
{
// -*- 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
// software; you can redistribute it and/or modify it under the terms
get_prob();
};
- /// Thown by throw_allocator.
+ /**
+ * @brief Thown by throw_allocator.
+ * @ingroup exceptions
+ */
struct forced_exception_error : public std::exception
{ };
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>
class throw_allocator : public throw_allocator_base
{
// Versatile string -*- 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
// software; you can redistribute it and/or modify it under the
// NB: per LWG issue 42, semantics different from IS:
/**
* @brief Construct string with copy of value of @a str.
- * @param str Source string.
+ * @param __str Source string.
*/
__versa_string(const __versa_string& __str)
: __vstring_base(__str) { }
#ifdef __GXX_EXPERIMENTAL_CXX0X__
/**
* @brief String move constructor.
- * @param str Source string.
+ * @param __str Source string.
*
- * The newly-constructed %string contains the exact contents of @a str.
- * The contents of @a str are a valid, but unspecified string.
+ * The newly-constructed %string contains the exact contents of
+ * @a str. The contents of @a str are a valid, but unspecified
+ * string.
*/
__versa_string(__versa_string&& __str)
: __vstring_base(std::forward<__vstring_base>(__str)) { }
/**
* @brief Construct string from an initializer list.
- * @param l std::initializer_list of characters.
- * @param a Allocator to use (default is default allocator).
+ * @param __l std::initializer_list of characters.
+ * @param __a Allocator to use (default is default allocator).
*/
__versa_string(std::initializer_list<_CharT> __l,
const _Alloc& __a = _Alloc())
/**
* @brief Construct string as copy of a substring.
- * @param str Source string.
- * @param pos Index of first character to copy from.
- * @param n Number of characters to copy (default remainder).
+ * @param __str Source string.
+ * @param __pos Index of first character to copy from.
+ * @param __n Number of characters to copy (default remainder).
*/
__versa_string(const __versa_string& __str, size_type __pos,
size_type __n = npos)
/**
* @brief Construct string as copy of a substring.
- * @param str Source string.
- * @param pos Index of first character to copy from.
- * @param n Number of characters to copy.
- * @param a Allocator to use.
+ * @param __str Source string.
+ * @param __pos Index of first character to copy from.
+ * @param __n Number of characters to copy.
+ * @param __a Allocator to use.
*/
__versa_string(const __versa_string& __str, size_type __pos,
size_type __n, const _Alloc& __a)
/**
* @brief Construct string initialized by a character array.
- * @param s Source character array.
- * @param n Number of characters to copy.
- * @param a Allocator to use (default is default allocator).
+ * @param __s Source character array.
+ * @param __n Number of characters to copy.
+ * @param __a Allocator to use (default is default allocator).
*
- * NB: @a s must have at least @a n characters, '\0' has no special
+ * NB: @a __s must have at least @a __n characters, '\0' has no special
* meaning.
*/
__versa_string(const _CharT* __s, size_type __n,
/**
* @brief Construct string as copy of a C string.
- * @param s Source C string.
- * @param a Allocator to use (default is default allocator).
+ * @param __s Source C string.
+ * @param __a Allocator to use (default is default allocator).
*/
__versa_string(const _CharT* __s, const _Alloc& __a = _Alloc())
: __vstring_base(__s, __s ? __s + traits_type::length(__s) :
/**
* @brief Construct string as multiple characters.
- * @param n Number of characters.
- * @param c Character to use.
- * @param a Allocator to use (default is default allocator).
+ * @param __n Number of characters.
+ * @param __c Character to use.
+ * @param __a Allocator to use (default is default allocator).
*/
__versa_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
: __vstring_base(__n, __c, __a) { }
/**
* @brief Construct string as copy of a range.
- * @param beg Start of range.
- * @param end End of range.
- * @param a Allocator to use (default is default allocator).
+ * @param __beg Start of range.
+ * @param __end End of range.
+ * @param __a Allocator to use (default is default allocator).
*/
template<class _InputIterator>
__versa_string(_InputIterator __beg, _InputIterator __end,
/**
* @brief Assign the value of @a str to this string.
- * @param str Source string.
+ * @param __str Source string.
*/
__versa_string&
operator=(const __versa_string& __str)
#ifdef __GXX_EXPERIMENTAL_CXX0X__
/**
* @brief String move assignment operator.
- * @param str Source string.
+ * @param __str Source string.
*
- * The contents of @a str are moved into this string (without copying).
- * @a str is a valid, but unspecified string.
+ * The contents of @a __str are moved into this string (without
+ * copying). @a __str is a valid, but unspecified string.
*/
__versa_string&
operator=(__versa_string&& __str)
/**
* @brief Set value to string constructed from initializer list.
- * @param l std::initializer_list.
+ * @param __l std::initializer_list.
*/
__versa_string&
operator=(std::initializer_list<_CharT> __l)
#endif
/**
- * @brief Copy contents of @a s into this string.
- * @param s Source null-terminated string.
+ * @brief Copy contents of @a __s into this string.
+ * @param __s Source null-terminated string.
*/
__versa_string&
operator=(const _CharT* __s)
/**
* @brief Set value to string of length 1.
- * @param c Source character.
+ * @param __c Source character.
*
* Assigning to a character makes this string length 1 and
- * (*this)[0] == @a c.
+ * (*this)[0] == @a __c.
*/
__versa_string&
operator=(_CharT __c)
/**
* @brief Resizes the %string to the specified number of characters.
- * @param n Number of characters the %string should contain.
- * @param c Character to fill any new elements.
+ * @param __n Number of characters the %string should contain.
+ * @param __c Character to fill any new elements.
*
* This function will %resize the %string to the specified
* number of characters. If the number is smaller than the
* %string's current size the %string is truncated, otherwise
- * the %string is extended and new elements are set to @a c.
+ * the %string is extended and new elements are set to @a __c.
*/
void
resize(size_type __n, _CharT __c);
/**
* @brief Resizes the %string to the specified number of characters.
- * @param n Number of characters the %string should contain.
+ * @param __n Number of characters the %string should contain.
*
- * This function will resize the %string to the specified length. If
- * the new size is smaller than the %string's current size the %string
- * is truncated, otherwise the %string is extended and new characters
- * are default-constructed. For basic types such as char, this means
- * setting them to 0.
+ * This function will resize the %string to the specified
+ * length. If the new size is smaller than the %string's
+ * current size the %string is truncated, otherwise the %string
+ * is extended and new characters are default-constructed. For
+ * basic types such as char, this means setting them to 0.
*/
void
resize(size_type __n)
{ this->resize(__n, _CharT()); }
/**
- * Returns the total number of characters that the %string can hold
- * before needing to allocate more memory.
+ * Returns the total number of characters that the %string can
+ * hold before needing to allocate more memory.
*/
size_type
capacity() const
/**
* @brief Attempt to preallocate enough memory for specified number of
* characters.
- * @param res_arg Number of characters required.
- * @throw std::length_error If @a res_arg exceeds @c max_size().
+ * @param __res_arg Number of characters required.
+ * @throw std::length_error If @a __res_arg exceeds @c max_size().
*
* This function attempts to reserve enough memory for the
* %string to hold the specified number of characters. If the
* thrown.
*
* The advantage of this function is that if optimal code is a
- * necessity and the user can determine the string length that will be
- * required, the user can reserve the memory in %advance, and thus
- * prevent a possible reallocation of memory and copying of %string
- * data.
+ * necessity and the user can determine the string length that
+ * will be required, the user can reserve the memory in
+ * %advance, and thus prevent a possible reallocation of memory
+ * and copying of %string data.
*/
void
reserve(size_type __res_arg = 0)
// Element access:
/**
* @brief Subscript access to the data contained in the %string.
- * @param pos The index of the character to access.
+ * @param __pos The index of the character to access.
* @return Read-only (constant) reference to the character.
*
* This operator allows for easy, array-style, data access.
/**
* @brief Subscript access to the data contained in the %string.
- * @param pos The index of the character to access.
+ * @param __pos The index of the character to access.
* @return Read/write reference to the character.
*
* This operator allows for easy, array-style, data access.
/**
* @brief Provides access to the data contained in the %string.
- * @param n The index of the character to access.
+ * @param __n The index of the character to access.
* @return Read-only (const) reference to the character.
- * @throw std::out_of_range If @a n is an invalid index.
+ * @throw std::out_of_range If @a __n is an invalid index.
*
- * This function provides for safer data access. The parameter is
- * first checked that it is in the range of the string. The function
- * throws out_of_range if the check fails.
+ * This function provides for safer data access. The parameter
+ * is first checked that it is in the range of the string. The
+ * function throws out_of_range if the check fails.
*/
const_reference
at(size_type __n) const
/**
* @brief Provides access to the data contained in the %string.
- * @param n The index of the character to access.
+ * @param __n The index of the character to access.
* @return Read/write reference to the character.
- * @throw std::out_of_range If @a n is an invalid index.
+ * @throw std::out_of_range If @a __n is an invalid index.
*
- * This function provides for safer data access. The parameter is
- * first checked that it is in the range of the string. The function
- * throws out_of_range if the check fails. Success results in
- * unsharing the string.
+ * This function provides for safer data access. The parameter
+ * is first checked that it is in the range of the string. The
+ * function throws out_of_range if the check fails. Success
+ * results in unsharing the string.
*/
reference
at(size_type __n)
// Modifiers:
/**
* @brief Append a string to this string.
- * @param str The string to append.
+ * @param __str The string to append.
* @return Reference to this string.
*/
__versa_string&
/**
* @brief Append a C string.
- * @param s The C string to append.
+ * @param __s The C string to append.
* @return Reference to this string.
*/
__versa_string&
/**
* @brief Append a character.
- * @param c The character to append.
+ * @param __c The character to append.
* @return Reference to this string.
*/
__versa_string&
#ifdef __GXX_EXPERIMENTAL_CXX0X__
/**
* @brief Append an initializer_list of characters.
- * @param l The initializer_list of characters to be appended.
+ * @param __l The initializer_list of characters to be appended.
* @return Reference to this string.
*/
__versa_string&
/**
* @brief Append a string to this string.
- * @param str The string to append.
+ * @param __str The string to append.
* @return Reference to this string.
*/
__versa_string&
/**
* @brief Append a substring.
- * @param str The string to append.
- * @param pos Index of the first character of str to append.
- * @param n The number of characters to append.
+ * @param __str The string to append.
+ * @param __pos Index of the first character of str to append.
+ * @param __n The number of characters to append.
* @return Reference to this string.
* @throw std::out_of_range if @a pos is not a valid index.
*
- * This function appends @a n characters from @a str starting at @a pos
- * to this string. If @a n is is larger than the number of available
- * characters in @a str, the remainder of @a str is appended.
+ * This function appends @a __n characters from @a __str
+ * starting at @a __pos to this string. If @a __n is is larger
+ * than the number of available characters in @a __str, the
+ * remainder of @a __str is appended.
*/
__versa_string&
append(const __versa_string& __str, size_type __pos, size_type __n)
/**
* @brief Append a C substring.
- * @param s The C string to append.
- * @param n The number of characters to append.
+ * @param __s The C string to append.
+ * @param __n The number of characters to append.
* @return Reference to this string.
*/
__versa_string&
/**
* @brief Append a C string.
- * @param s The C string to append.
+ * @param __s The C string to append.
* @return Reference to this string.
*/
__versa_string&
/**
* @brief Append multiple characters.
- * @param n The number of characters to append.
- * @param c The character to use.
+ * @param __n The number of characters to append.
+ * @param __c The character to use.
* @return Reference to this string.
*
* Appends n copies of c to this string.
#ifdef __GXX_EXPERIMENTAL_CXX0X__
/**
* @brief Append an initializer_list of characters.
- * @param l The initializer_list of characters to append.
+ * @param __l The initializer_list of characters to append.
* @return Reference to this string.
*/
__versa_string&
/**
* @brief Append a range of characters.
- * @param first Iterator referencing the first character to append.
- * @param last Iterator marking the end of the range.
+ * @param __first Iterator referencing the first character to append.
+ * @param __last Iterator marking the end of the range.
* @return Reference to this string.
*
* Appends characters in the range [first,last) to this string.
/**
* @brief Append a single character.
- * @param c Character to append.
+ * @param __c Character to append.
*/
void
push_back(_CharT __c)
/**
* @brief Set value to contents of another string.
- * @param str Source string to use.
+ * @param __str Source string to use.
* @return Reference to this string.
*/
__versa_string&
/**
* @brief Set value to a substring of a string.
- * @param str The string to use.
- * @param pos Index of the first character of str.
- * @param n Number of characters to use.
+ * @param __str The string to use.
+ * @param __pos Index of the first character of str.
+ * @param __n Number of characters to use.
* @return Reference to this string.
- * @throw std::out_of_range if @a pos is not a valid index.
+ * @throw std::out_of_range if @a __pos is not a valid index.
*
- * This function sets this string to the substring of @a str consisting
- * of @a n characters at @a pos. If @a n is is larger than the number
- * of available characters in @a str, the remainder of @a str is used.
+ * This function sets this string to the substring of @a __str
+ * consisting of @a __n characters at @a __pos. If @a __n is
+ * is larger than the number of available characters in @a
+ * __str, the remainder of @a __str is used.
*/
__versa_string&
assign(const __versa_string& __str, size_type __pos, size_type __n)
/**
* @brief Set value to a C substring.
- * @param s The C string to use.
- * @param n Number of characters to use.
+ * @param __s The C string to use.
+ * @param __n Number of characters to use.
* @return Reference to this string.
*
- * This function sets the value of this string to the first @a n
- * characters of @a s. If @a n is is larger than the number of
- * available characters in @a s, the remainder of @a s is used.
+ * This function sets the value of this string to the first @a
+ * __n characters of @a __s. If @a __n is is larger than the
+ * number of available characters in @a __s, the remainder of
+ * @a __s is used.
*/
__versa_string&
assign(const _CharT* __s, size_type __n)
/**
* @brief Set value to contents of a C string.
- * @param s The C string to use.
+ * @param __s The C string to use.
* @return Reference to this string.
*
- * This function sets the value of this string to the value of @a s.
- * The data is copied, so there is no dependence on @a s once the
- * function returns.
+ * This function sets the value of this string to the value of
+ * @a __s. The data is copied, so there is no dependence on @a
+ * __s once the function returns.
*/
__versa_string&
assign(const _CharT* __s)
/**
* @brief Set value to multiple characters.
- * @param n Length of the resulting string.
- * @param c The character to use.
+ * @param __n Length of the resulting string.
+ * @param __c The character to use.
* @return Reference to this string.
*
- * This function sets the value of this string to @a n copies of
- * character @a c.
+ * This function sets the value of this string to @a __n copies of
+ * character @a __c.
*/
__versa_string&
assign(size_type __n, _CharT __c)
/**
* @brief Set value to a range of characters.
- * @param first Iterator referencing the first character to append.
- * @param last Iterator marking the end of the range.
+ * @param __first Iterator referencing the first character to append.
+ * @param __last Iterator marking the end of the range.
* @return Reference to this string.
*
- * Sets value of string to characters in the range [first,last).
+ * Sets value of string to characters in the range
+ * [first,last).
*/
template<class _InputIterator>
__versa_string&
#ifdef __GXX_EXPERIMENTAL_CXX0X__
/**
* @brief Set value to an initializer_list of characters.
- * @param l The initializer_list of characters to assign.
+ * @param __l The initializer_list of characters to assign.
* @return Reference to this string.
*/
__versa_string&
/**
* @brief Insert multiple characters.
- * @param p Iterator referencing location in string to insert at.
- * @param n Number of characters to insert
- * @param c The character to insert.
+ * @param __p Iterator referencing location in string to insert at.
+ * @param __n Number of characters to insert
+ * @param __c The character to insert.
* @throw std::length_error If new length exceeds @c max_size().
*
- * Inserts @a n copies of character @a c starting at the position
- * referenced by iterator @a p. If adding characters causes the length
- * to exceed max_size(), length_error is thrown. The value of the
- * string doesn't change if an error is thrown.
+ * Inserts @a __n copies of character @a __c starting at the
+ * position referenced by iterator @a __p. If adding
+ * characters causes the length to exceed max_size(),
+ * length_error is thrown. The value of the string doesn't
+ * change if an error is thrown.
*/
void
insert(iterator __p, size_type __n, _CharT __c)
/**
* @brief Insert a range of characters.
- * @param p Iterator referencing location in string to insert at.
- * @param beg Start of range.
- * @param end End of range.
+ * @param __p Iterator referencing location in string to insert at.
+ * @param __beg Start of range.
+ * @param __end End of range.
* @throw std::length_error If new length exceeds @c max_size().
*
- * Inserts characters in range [beg,end). If adding characters causes
- * the length to exceed max_size(), length_error is thrown. The value
- * of the string doesn't change if an error is thrown.
+ * Inserts characters in range [beg,end). If adding characters
+ * causes the length to exceed max_size(), length_error is
+ * thrown. The value of the string doesn't change if an error
+ * is thrown.
*/
template<class _InputIterator>
void
#ifdef __GXX_EXPERIMENTAL_CXX0X__
/**
* @brief Insert an initializer_list of characters.
- * @param p Iterator referencing location in string to insert at.
- * @param l The initializer_list of characters to insert.
+ * @param __p Iterator referencing location in string to insert at.
+ * @param __l The initializer_list of characters to insert.
* @throw std::length_error If new length exceeds @c max_size().
*/
void
/**
* @brief Insert value of a string.
- * @param pos1 Iterator referencing location in string to insert at.
- * @param str The string to insert.
+ * @param __pos1 Iterator referencing location in string to insert at.
+ * @param __str The string to insert.
* @return Reference to this string.
* @throw std::length_error If new length exceeds @c max_size().
*
- * Inserts value of @a str starting at @a pos1. If adding characters
- * causes the length to exceed max_size(), length_error is thrown. The
- * value of the string doesn't change if an error is thrown.
+ * Inserts value of @a __str starting at @a __pos1. If adding
+ * characters causes the length to exceed max_size(),
+ * length_error is thrown. The value of the string doesn't
+ * change if an error is thrown.
*/
__versa_string&
insert(size_type __pos1, const __versa_string& __str)
/**
* @brief Insert a substring.
- * @param pos1 Iterator referencing location in string to insert at.
- * @param str The string to insert.
- * @param pos2 Start of characters in str to insert.
- * @param n Number of characters to insert.
+ * @param __pos1 Iterator referencing location in string to insert at.
+ * @param __str The string to insert.
+ * @param __pos2 Start of characters in str to insert.
+ * @param __n Number of characters to insert.
* @return Reference to this string.
* @throw std::length_error If new length exceeds @c max_size().
- * @throw std::out_of_range If @a pos1 > size() or
- * @a pos2 > @a str.size().
- *
- * Starting at @a pos1, insert @a n character of @a str beginning with
- * @a pos2. If adding characters causes the length to exceed
- * max_size(), length_error is thrown. If @a pos1 is beyond the end of
- * this string or @a pos2 is beyond the end of @a str, out_of_range is
- * thrown. The value of the string doesn't change if an error is
- * thrown.
+ * @throw std::out_of_range If @a __pos1 > size() or
+ * @a __pos2 > @a __str.size().
+ *
+ * Starting at @a __pos1, insert @a __n character of @a __str
+ * beginning with @a __pos2. If adding characters causes the
+ * length to exceed max_size(), length_error is thrown. If @a
+ * __pos1 is beyond the end of this string or @a __pos2 is
+ * beyond the end of @a __str, out_of_range is thrown. The
+ * value of the string doesn't change if an error is thrown.
*/
__versa_string&
insert(size_type __pos1, const __versa_string& __str,
/**
* @brief Insert a C substring.
- * @param pos Iterator referencing location in string to insert at.
- * @param s The C string to insert.
- * @param n The number of characters to insert.
+ * @param __pos Iterator referencing location in string to insert at.
+ * @param __s The C string to insert.
+ * @param __n The number of characters to insert.
* @return Reference to this string.
* @throw std::length_error If new length exceeds @c max_size().
- * @throw std::out_of_range If @a pos is beyond the end of this
+ * @throw std::out_of_range If @a __pos is beyond the end of this
* string.
*
- * Inserts the first @a n characters of @a s starting at @a pos. If
- * adding characters causes the length to exceed max_size(),
- * length_error is thrown. If @a pos is beyond end(), out_of_range is
- * thrown. The value of the string doesn't change if an error is
- * thrown.
+ * Inserts the first @a __n characters of @a __s starting at @a
+ * __pos. If adding characters causes the length to exceed
+ * max_size(), length_error is thrown. If @a __pos is beyond
+ * end(), out_of_range is thrown. The value of the string
+ * doesn't change if an error is thrown.
*/
__versa_string&
insert(size_type __pos, const _CharT* __s, size_type __n)
/**
* @brief Insert a C string.
- * @param pos Iterator referencing location in string to insert at.
- * @param s The C string to insert.
+ * @param __pos Iterator referencing location in string to insert at.
+ * @param __s The C string to insert.
* @return Reference to this string.
* @throw std::length_error If new length exceeds @c max_size().
- * @throw std::out_of_range If @a pos is beyond the end of this
+ * @throw std::out_of_range If @a __pos is beyond the end of this
* string.
*
- * Inserts the first @a n characters of @a s starting at @a pos. If
- * adding characters causes the length to exceed max_size(),
- * length_error is thrown. If @a pos is beyond end(), out_of_range is
- * thrown. The value of the string doesn't change if an error is
- * thrown.
+ * Inserts the first @a __n characters of @a __s starting at @a
+ * __pos. If adding characters causes the length to exceed
+ * max_size(), length_error is thrown. If @a __pos is beyond
+ * end(), out_of_range is thrown. The value of the string
+ * doesn't change if an error is thrown.
*/
__versa_string&
insert(size_type __pos, const _CharT* __s)
/**
* @brief Insert multiple characters.
- * @param pos Index in string to insert at.
- * @param n Number of characters to insert
- * @param c The character to insert.
+ * @param __pos Index in string to insert at.
+ * @param __n Number of characters to insert
+ * @param __c The character to insert.
* @return Reference to this string.
* @throw std::length_error If new length exceeds @c max_size().
- * @throw std::out_of_range If @a pos is beyond the end of this
+ * @throw std::out_of_range If @a __pos is beyond the end of this
* string.
*
- * Inserts @a n copies of character @a c starting at index @a pos. If
- * adding characters causes the length to exceed max_size(),
- * length_error is thrown. If @a pos > length(), out_of_range is
- * thrown. The value of the string doesn't change if an error is
- * thrown.
+ * Inserts @a __n copies of character @a __c starting at index
+ * @a __pos. If adding characters causes the length to exceed
+ * max_size(), length_error is thrown. If @a __pos > length(),
+ * out_of_range is thrown. The value of the string doesn't
+ * change if an error is thrown.
*/
__versa_string&
insert(size_type __pos, size_type __n, _CharT __c)
/**
* @brief Insert one character.
- * @param p Iterator referencing position in string to insert at.
- * @param c The character to insert.
+ * @param __p Iterator referencing position in string to insert at.
+ * @param __c The character to insert.
* @return Iterator referencing newly inserted char.
* @throw std::length_error If new length exceeds @c max_size().
*
- * Inserts character @a c at position referenced by @a p. If adding
- * character causes the length to exceed max_size(), length_error is
- * thrown. If @a p is beyond end of string, out_of_range is thrown.
- * The value of the string doesn't change if an error is thrown.
+ * Inserts character @a __c at position referenced by @a __p.
+ * If adding character causes the length to exceed max_size(),
+ * length_error is thrown. If @a __p is beyond end of string,
+ * out_of_range is thrown. The value of the string doesn't
+ * change if an error is thrown.
*/
iterator
insert(iterator __p, _CharT __c)
/**
* @brief Remove characters.
- * @param pos Index of first character to remove (default 0).
- * @param n Number of characters to remove (default remainder).
+ * @param __pos Index of first character to remove (default 0).
+ * @param __n Number of characters to remove (default remainder).
* @return Reference to this string.
- * @throw std::out_of_range If @a pos is beyond the end of this
+ * @throw std::out_of_range If @a __pos is beyond the end of this
* string.
*
- * Removes @a n characters from this string starting at @a pos. The
- * length of the string is reduced by @a n. If there are < @a n
- * characters to remove, the remainder of the string is truncated. If
- * @a p is beyond end of string, out_of_range is thrown. The value of
- * the string doesn't change if an error is thrown.
+ * Removes @a __n characters from this string starting at @a
+ * __pos. The length of the string is reduced by @a __n. If
+ * there are < @a __n characters to remove, the remainder of
+ * the string is truncated. If @a __p is beyond end of string,
+ * out_of_range is thrown. The value of the string doesn't
+ * change if an error is thrown.
*/
__versa_string&
erase(size_type __pos = 0, size_type __n = npos)
/**
* @brief Remove one character.
- * @param position Iterator referencing the character to remove.
+ * @param __position Iterator referencing the character to remove.
* @return iterator referencing same location after removal.
*
- * Removes the character at @a position from this string. The value
- * of the string doesn't change if an error is thrown.
+ * Removes the character at @a __position from this string. The
+ * value of the string doesn't change if an error is thrown.
*/
iterator
erase(iterator __position)
/**
* @brief Remove a range of characters.
- * @param first Iterator referencing the first character to remove.
- * @param last Iterator referencing the end of the range.
+ * @param __first Iterator referencing the first character to remove.
+ * @param __last Iterator referencing the end of the range.
* @return Iterator referencing location of first after removal.
*
- * Removes the characters in the range [first,last) from this string.
- * The value of the string doesn't change if an error is thrown.
+ * Removes the characters in the range [first,last) from this
+ * string. The value of the string doesn't change if an error
+ * is thrown.
*/
iterator
erase(iterator __first, iterator __last)
/**
* @brief Replace characters with value from another string.
- * @param pos Index of first character to replace.
- * @param n Number of characters to be replaced.
- * @param str String to insert.
+ * @param __pos Index of first character to replace.
+ * @param __n Number of characters to be replaced.
+ * @param __str String to insert.
* @return Reference to this string.
- * @throw std::out_of_range If @a pos is beyond the end of this
+ * @throw std::out_of_range If @a __pos is beyond the end of this
* string.
* @throw std::length_error If new length exceeds @c max_size().
*
- * Removes the characters in the range [pos,pos+n) from this string.
- * In place, the value of @a str is inserted. If @a pos is beyond end
- * of string, out_of_range is thrown. If the length of the result
- * exceeds max_size(), length_error is thrown. The value of the string
- * doesn't change if an error is thrown.
+ * Removes the characters in the range [pos,pos+n) from this
+ * string. In place, the value of @a __str is inserted. If @a
+ * __pos is beyond end of string, out_of_range is thrown. If
+ * the length of the result exceeds max_size(), length_error is
+ * thrown. The value of the string doesn't change if an error
+ * is thrown.
*/
__versa_string&
replace(size_type __pos, size_type __n, const __versa_string& __str)
/**
* @brief Replace characters with value from another string.
- * @param pos1 Index of first character to replace.
- * @param n1 Number of characters to be replaced.
- * @param str String to insert.
- * @param pos2 Index of first character of str to use.
- * @param n2 Number of characters from str to use.
+ * @param __pos1 Index of first character to replace.
+ * @param __n1 Number of characters to be replaced.
+ * @param __str String to insert.
+ * @param __pos2 Index of first character of str to use.
+ * @param __n2 Number of characters from str to use.
* @return Reference to this string.
- * @throw std::out_of_range If @a pos1 > size() or @a pos2 >
+ * @throw std::out_of_range If @a __pos1 > size() or @a __pos2 >
* str.size().
* @throw std::length_error If new length exceeds @c max_size().
*
- * Removes the characters in the range [pos1,pos1 + n) from this
- * string. In place, the value of @a str is inserted. If @a pos is
- * beyond end of string, out_of_range is thrown. If the length of the
- * result exceeds max_size(), length_error is thrown. The value of the
- * string doesn't change if an error is thrown.
+ * Removes the characters in the range [pos1,pos1 + n) from
+ * this string. In place, the value of @a __str is inserted.
+ * If @a __pos is beyond end of string, out_of_range is thrown.
+ * If the length of the result exceeds max_size(), length_error
+ * is thrown. The value of the string doesn't change if an
+ * error is thrown.
*/
__versa_string&
replace(size_type __pos1, size_type __n1, const __versa_string& __str,
/**
* @brief Replace characters with value of a C substring.
- * @param pos Index of first character to replace.
- * @param n1 Number of characters to be replaced.
- * @param s C string to insert.
- * @param n2 Number of characters from @a s to use.
+ * @param __pos Index of first character to replace.
+ * @param __n1 Number of characters to be replaced.
+ * @param __s C string to insert.
+ * @param __n2 Number of characters from @a __s to use.
* @return Reference to this string.
- * @throw std::out_of_range If @a pos1 > size().
+ * @throw std::out_of_range If @a __pos1 > size().
* @throw std::length_error If new length exceeds @c max_size().
*
- * Removes the characters in the range [pos,pos + n1) from this string.
- * In place, the first @a n2 characters of @a s are inserted, or all
- * of @a s if @a n2 is too large. If @a pos is beyond end of string,
- * out_of_range is thrown. If the length of result exceeds max_size(),
- * length_error is thrown. The value of the string doesn't change if
- * an error is thrown.
+ * Removes the characters in the range [pos,pos + n1) from this
+ * string. In place, the first @a __n2 characters of @a __s
+ * are inserted, or all of @a __s if @a __n2 is too large. If
+ * @a __pos is beyond end of string, out_of_range is thrown.
+ * If the length of result exceeds max_size(), length_error is
+ * thrown. The value of the string doesn't change if an error
+ * is thrown.
*/
__versa_string&
replace(size_type __pos, size_type __n1, const _CharT* __s,
/**
* @brief Replace characters with value of a C string.
- * @param pos Index of first character to replace.
- * @param n1 Number of characters to be replaced.
- * @param s C string to insert.
+ * @param __pos Index of first character to replace.
+ * @param __n1 Number of characters to be replaced.
+ * @param __s C string to insert.
* @return Reference to this string.
- * @throw std::out_of_range If @a pos > size().
+ * @throw std::out_of_range If @a __pos > size().
* @throw std::length_error If new length exceeds @c max_size().
*
- * Removes the characters in the range [pos,pos + n1) from this string.
- * In place, the first @a n characters of @a s are inserted. If @a
- * pos is beyond end of string, out_of_range is thrown. If the length
- * of result exceeds max_size(), length_error is thrown. The value of
- * the string doesn't change if an error is thrown.
+ * Removes the characters in the range [pos,pos + n1) from this
+ * string. In place, the first @a __n characters of @a __s are
+ * inserted. If @a pos is beyond end of string, out_of_range
+ * is thrown. If the length of result exceeds max_size(),
+ * length_error is thrown. The value of the string doesn't
+ * change if an error is thrown.
*/
__versa_string&
replace(size_type __pos, size_type __n1, const _CharT* __s)
/**
* @brief Replace characters with multiple characters.
- * @param pos Index of first character to replace.
- * @param n1 Number of characters to be replaced.
- * @param n2 Number of characters to insert.
- * @param c Character to insert.
+ * @param __pos Index of first character to replace.
+ * @param __n1 Number of characters to be replaced.
+ * @param __n2 Number of characters to insert.
+ * @param __c Character to insert.
* @return Reference to this string.
- * @throw std::out_of_range If @a pos > size().
+ * @throw std::out_of_range If @a __pos > size().
* @throw std::length_error If new length exceeds @c max_size().
*
- * Removes the characters in the range [pos,pos + n1) from this string.
- * In place, @a n2 copies of @a c are inserted. If @a pos is beyond
- * end of string, out_of_range is thrown. If the length of result
- * exceeds max_size(), length_error is thrown. The value of the string
- * doesn't change if an error is thrown.
+ * Removes the characters in the range [pos,pos + n1) from this
+ * string. In place, @a __n2 copies of @a __c are inserted.
+ * If @a __pos is beyond end of string, out_of_range is thrown.
+ * If the length of result exceeds max_size(), length_error is
+ * thrown. The value of the string doesn't change if an error
+ * is thrown.
*/
__versa_string&
replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c)
/**
* @brief Replace range of characters with string.
- * @param i1 Iterator referencing start of range to replace.
- * @param i2 Iterator referencing end of range to replace.
- * @param str String value to insert.
+ * @param __i1 Iterator referencing start of range to replace.
+ * @param __i2 Iterator referencing end of range to replace.
+ * @param __str String value to insert.
* @return Reference to this string.
* @throw std::length_error If new length exceeds @c max_size().
*
- * Removes the characters in the range [i1,i2). In place, the value of
- * @a str is inserted. If the length of result exceeds max_size(),
- * length_error is thrown. The value of the string doesn't change if
- * an error is thrown.
+ * Removes the characters in the range [i1,i2). In place, the
+ * value of @a __str is inserted. If the length of result
+ * exceeds max_size(), length_error is thrown. The value of
+ * the string doesn't change if an error is thrown.
*/
__versa_string&
replace(iterator __i1, iterator __i2, const __versa_string& __str)
/**
* @brief Replace range of characters with C substring.
- * @param i1 Iterator referencing start of range to replace.
- * @param i2 Iterator referencing end of range to replace.
- * @param s C string value to insert.
- * @param n Number of characters from s to insert.
+ * @param __i1 Iterator referencing start of range to replace.
+ * @param __i2 Iterator referencing end of range to replace.
+ * @param __s C string value to insert.
+ * @param __n Number of characters from s to insert.
* @return Reference to this string.
* @throw std::length_error If new length exceeds @c max_size().
*
- * Removes the characters in the range [i1,i2). In place, the first @a
- * n characters of @a s are inserted. If the length of result exceeds
- * max_size(), length_error is thrown. The value of the string doesn't
- * change if an error is thrown.
+ * Removes the characters in the range [i1,i2). In place, the
+ * first @a n characters of @a __s are inserted. If the length
+ * of result exceeds max_size(), length_error is thrown. The
+ * value of the string doesn't change if an error is thrown.
*/
__versa_string&
replace(iterator __i1, iterator __i2, const _CharT* __s, size_type __n)
/**
* @brief Replace range of characters with C string.
- * @param i1 Iterator referencing start of range to replace.
- * @param i2 Iterator referencing end of range to replace.
- * @param s C string value to insert.
+ * @param __i1 Iterator referencing start of range to replace.
+ * @param __i2 Iterator referencing end of range to replace.
+ * @param __s C string value to insert.
* @return Reference to this string.
* @throw std::length_error If new length exceeds @c max_size().
*
* Removes the characters in the range [i1,i2). In place, the
- * characters of @a s are inserted. If the length of result exceeds
- * max_size(), length_error is thrown. The value of the string doesn't
- * change if an error is thrown.
+ * characters of @a __s are inserted. If the length of result
+ * exceeds max_size(), length_error is thrown. The value of
+ * the string doesn't change if an error is thrown.
*/
__versa_string&
replace(iterator __i1, iterator __i2, const _CharT* __s)
/**
* @brief Replace range of characters with multiple characters
- * @param i1 Iterator referencing start of range to replace.
- * @param i2 Iterator referencing end of range to replace.
- * @param n Number of characters to insert.
- * @param c Character to insert.
+ * @param __i1 Iterator referencing start of range to replace.
+ * @param __i2 Iterator referencing end of range to replace.
+ * @param __n Number of characters to insert.
+ * @param __c Character to insert.
* @return Reference to this string.
* @throw std::length_error If new length exceeds @c max_size().
*
- * Removes the characters in the range [i1,i2). In place, @a n copies
- * of @a c are inserted. If the length of result exceeds max_size(),
- * length_error is thrown. The value of the string doesn't change if
- * an error is thrown.
+ * Removes the characters in the range [i1,i2). In place, @a
+ * __n copies of @a __c are inserted. If the length of result
+ * exceeds max_size(), length_error is thrown. The value of
+ * the string doesn't change if an error is thrown.
*/
__versa_string&
replace(iterator __i1, iterator __i2, size_type __n, _CharT __c)
/**
* @brief Replace range of characters with range.
- * @param i1 Iterator referencing start of range to replace.
- * @param i2 Iterator referencing end of range to replace.
- * @param k1 Iterator referencing start of range to insert.
- * @param k2 Iterator referencing end of range to insert.
+ * @param __i1 Iterator referencing start of range to replace.
+ * @param __i2 Iterator referencing end of range to replace.
+ * @param __k1 Iterator referencing start of range to insert.
+ * @param __k2 Iterator referencing end of range to insert.
* @return Reference to this string.
* @throw std::length_error If new length exceeds @c max_size().
*
- * Removes the characters in the range [i1,i2). In place, characters
- * in the range [k1,k2) are inserted. If the length of result exceeds
- * max_size(), length_error is thrown. The value of the string doesn't
- * change if an error is thrown.
+ * Removes the characters in the range [i1,i2). In place,
+ * characters in the range [k1,k2) are inserted. If the length
+ * of result exceeds max_size(), length_error is thrown. The
+ * value of the string doesn't change if an error is thrown.
*/
template<class _InputIterator>
__versa_string&
#ifdef __GXX_EXPERIMENTAL_CXX0X__
/**
* @brief Replace range of characters with initializer_list.
- * @param i1 Iterator referencing start of range to replace.
- * @param i2 Iterator referencing end of range to replace.
- * @param l The initializer_list of characters to insert.
+ * @param __i1 Iterator referencing start of range to replace.
+ * @param __i2 Iterator referencing end of range to replace.
+ * @param __l The initializer_list of characters to insert.
* @return Reference to this string.
* @throw std::length_error If new length exceeds @c max_size().
*
- * Removes the characters in the range [i1,i2). In place, characters
- * in the range [k1,k2) are inserted. If the length of result exceeds
- * max_size(), length_error is thrown. The value of the string doesn't
- * change if an error is thrown.
+ * Removes the characters in the range [i1,i2). In place,
+ * characters in the range [k1,k2) are inserted. If the length
+ * of result exceeds max_size(), length_error is thrown. The
+ * value of the string doesn't change if an error is thrown.
*/
__versa_string& replace(iterator __i1, iterator __i2,
std::initializer_list<_CharT> __l)
/**
* @brief Copy substring into C string.
- * @param s C string to copy value into.
- * @param n Number of characters to copy.
- * @param pos Index of first character to copy.
+ * @param __s C string to copy value into.
+ * @param __n Number of characters to copy.
+ * @param __pos Index of first character to copy.
* @return Number of characters actually copied
* @throw std::out_of_range If pos > size().
*
- * Copies up to @a n characters starting at @a pos into the C string @a
- * s. If @a pos is greater than size(), out_of_range is thrown.
+ * Copies up to @a __n characters starting at @a __pos into the
+ * C string @a s. If @a __pos is greater than size(),
+ * out_of_range is thrown.
*/
size_type
copy(_CharT* __s, size_type __n, size_type __pos = 0) const;
/**
* @brief Swap contents with another string.
- * @param s String to swap with.
+ * @param __s String to swap with.
*
- * Exchanges the contents of this string with that of @a s in constant
- * time.
+ * Exchanges the contents of this string with that of @a __s in
+ * constant time.
*/
void
#ifdef __GXX_EXPERIMENTAL_CXX0X__
/**
* @brief Find position of a C substring.
- * @param s C string to locate.
- * @param pos Index of character to search from.
- * @param n Number of characters from @a s to search for.
+ * @param __s C string to locate.
+ * @param __pos Index of character to search from.
+ * @param __n Number of characters from @a __s to search for.
* @return Index of start of first occurrence.
*
- * Starting from @a pos, searches forward for the first @a n characters
- * in @a s within this string. If found, returns the index where it
- * begins. If not found, returns npos.
+ * Starting from @a __pos, searches forward for the first @a
+ * __n characters in @a __s within this string. If found,
+ * returns the index where it begins. If not found, returns
+ * npos.
*/
size_type
find(const _CharT* __s, size_type __pos, size_type __n) const;
/**
* @brief Find position of a string.
- * @param str String to locate.
- * @param pos Index of character to search from (default 0).
+ * @param __str String to locate.
+ * @param __pos Index of character to search from (default 0).
* @return Index of start of first occurrence.
*
- * Starting from @a pos, searches forward for value of @a str within
- * this string. If found, returns the index where it begins. If not
- * found, returns npos.
+ * Starting from @a __pos, searches forward for value of @a
+ * __str within this string. If found, returns the index where
+ * it begins. If not found, returns npos.
*/
size_type
find(const __versa_string& __str, size_type __pos = 0) const
/**
* @brief Find position of a C string.
- * @param s C string to locate.
- * @param pos Index of character to search from (default 0).
+ * @param __s C string to locate.
+ * @param __pos Index of character to search from (default 0).
* @return Index of start of first occurrence.
*
- * Starting from @a pos, searches forward for the value of @a s within
- * this string. If found, returns the index where it begins. If not
- * found, returns npos.
+ * Starting from @a __pos, searches forward for the value of @a
+ * __s within this string. If found, returns the index where
+ * it begins. If not found, returns npos.
*/
size_type
find(const _CharT* __s, size_type __pos = 0) const
/**
* @brief Find position of a character.
- * @param c Character to locate.
- * @param pos Index of character to search from (default 0).
+ * @param __c Character to locate.
+ * @param __pos Index of character to search from (default 0).
* @return Index of first occurrence.
*
- * Starting from @a pos, searches forward for @a c within this string.
- * If found, returns the index where it was found. If not found,
- * returns npos.
+ * Starting from @a __pos, searches forward for @a __c within
+ * this string. If found, returns the index where it was
+ * found. If not found, returns npos.
*/
size_type
find(_CharT __c, size_type __pos = 0) const;
/**
* @brief Find last position of a string.
- * @param str String to locate.
- * @param pos Index of character to search back from (default end).
+ * @param __str String to locate.
+ * @param __pos Index of character to search back from (default end).
* @return Index of start of last occurrence.
*
- * Starting from @a pos, searches backward for value of @a str within
- * this string. If found, returns the index where it begins. If not
- * found, returns npos.
+ * Starting from @a __pos, searches backward for value of @a
+ * __str within this string. If found, returns the index where
+ * it begins. If not found, returns npos.
*/
size_type
rfind(const __versa_string& __str, size_type __pos = npos) const
/**
* @brief Find last position of a C substring.
- * @param s C string to locate.
- * @param pos Index of character to search back from.
- * @param n Number of characters from s to search for.
+ * @param __s C string to locate.
+ * @param __pos Index of character to search back from.
+ * @param __n Number of characters from s to search for.
* @return Index of start of last occurrence.
*
- * Starting from @a pos, searches backward for the first @a n
- * characters in @a s within this string. If found, returns the index
- * where it begins. If not found, returns npos.
+ * Starting from @a __pos, searches backward for the first @a
+ * __n characters in @a __s within this string. If found,
+ * returns the index where it begins. If not found, returns
+ * npos.
*/
size_type
rfind(const _CharT* __s, size_type __pos, size_type __n) const;
/**
* @brief Find last position of a C string.
- * @param s C string to locate.
- * @param pos Index of character to start search at (default end).
+ * @param __s C string to locate.
+ * @param __pos Index of character to start search at (default end).
* @return Index of start of last occurrence.
*
- * Starting from @a pos, searches backward for the value of @a s within
- * this string. If found, returns the index where it begins. If not
- * found, returns npos.
+ * Starting from @a __pos, searches backward for the value of
+ * @a __s within this string. If found, returns the index
+ * where it begins. If not found, returns npos.
*/
size_type
rfind(const _CharT* __s, size_type __pos = npos) const
/**
* @brief Find last position of a character.
- * @param c Character to locate.
- * @param pos Index of character to search back from (default end).
+ * @param __c Character to locate.
+ * @param __pos Index of character to search back from (default end).
* @return Index of last occurrence.
*
- * Starting from @a pos, searches backward for @a c within this string.
- * If found, returns the index where it was found. If not found,
- * returns npos.
+ * Starting from @a __pos, searches backward for @a __c within
+ * this string. If found, returns the index where it was
+ * found. If not found, returns npos.
*/
size_type
rfind(_CharT __c, size_type __pos = npos) const;
/**
* @brief Find position of a character of string.
- * @param str String containing characters to locate.
- * @param pos Index of character to search from (default 0).
+ * @param __str String containing characters to locate.
+ * @param __pos Index of character to search from (default 0).
* @return Index of first occurrence.
*
- * Starting from @a pos, searches forward for one of the characters of
- * @a str within this string. If found, returns the index where it was
+ * Starting from @a __pos, searches forward for one of the characters of
+ * @a __str within this string. If found, returns the index where it was
* found. If not found, returns npos.
*/
size_type
/**
* @brief Find position of a character of C substring.
- * @param s String containing characters to locate.
- * @param pos Index of character to search from.
- * @param n Number of characters from s to search for.
+ * @param __s String containing characters to locate.
+ * @param __pos Index of character to search from.
+ * @param __n Number of characters from s to search for.
* @return Index of first occurrence.
*
- * Starting from @a pos, searches forward for one of the first @a n
- * characters of @a s within this string. If found, returns the index
- * where it was found. If not found, returns npos.
+ * Starting from @a __pos, searches forward for one of the
+ * first @a __n characters of @a __s within this string. If
+ * found, returns the index where it was found. If not found,
+ * returns npos.
*/
size_type
find_first_of(const _CharT* __s, size_type __pos, size_type __n) const;
/**
* @brief Find position of a character of C string.
- * @param s String containing characters to locate.
- * @param pos Index of character to search from (default 0).
+ * @param __s String containing characters to locate.
+ * @param __pos Index of character to search from (default 0).
* @return Index of first occurrence.
*
- * Starting from @a pos, searches forward for one of the characters of
- * @a s within this string. If found, returns the index where it was
- * found. If not found, returns npos.
+ * Starting from @a __pos, searches forward for one of the
+ * characters of @a __s within this string. If found, returns
+ * the index where it was found. If not found, returns npos.
*/
size_type
find_first_of(const _CharT* __s, size_type __pos = 0) const
/**
* @brief Find position of a character.
- * @param c Character to locate.
- * @param pos Index of character to search from (default 0).
+ * @param __c Character to locate.
+ * @param __pos Index of character to search from (default 0).
* @return Index of first occurrence.
*
- * Starting from @a pos, searches forward for the character @a c within
- * this string. If found, returns the index where it was found. If
- * not found, returns npos.
+ * Starting from @a __pos, searches forward for the character
+ * @a __c within this string. If found, returns the index
+ * where it was found. If not found, returns npos.
*
* Note: equivalent to find(c, pos).
*/
/**
* @brief Find last position of a character of string.
- * @param str String containing characters to locate.
- * @param pos Index of character to search back from (default end).
+ * @param __str String containing characters to locate.
+ * @param __pos Index of character to search back from (default end).
* @return Index of last occurrence.
*
- * Starting from @a pos, searches backward for one of the characters of
- * @a str within this string. If found, returns the index where it was
- * found. If not found, returns npos.
+ * Starting from @a __pos, searches backward for one of the
+ * characters of @a __str within this string. If found,
+ * returns the index where it was found. If not found, returns
+ * npos.
*/
size_type
find_last_of(const __versa_string& __str, size_type __pos = npos) const
/**
* @brief Find last position of a character of C substring.
- * @param s C string containing characters to locate.
- * @param pos Index of character to search back from.
- * @param n Number of characters from s to search for.
+ * @param __s C string containing characters to locate.
+ * @param __pos Index of character to search back from.
+ * @param __n Number of characters from s to search for.
* @return Index of last occurrence.
*
- * Starting from @a pos, searches backward for one of the first @a n
- * characters of @a s within this string. If found, returns the index
- * where it was found. If not found, returns npos.
+ * Starting from @a __pos, searches backward for one of the
+ * first @a __n characters of @a __s within this string. If
+ * found, returns the index where it was found. If not found,
+ * returns npos.
*/
size_type
find_last_of(const _CharT* __s, size_type __pos, size_type __n) const;
/**
* @brief Find last position of a character of C string.
- * @param s C string containing characters to locate.
- * @param pos Index of character to search back from (default end).
+ * @param __s C string containing characters to locate.
+ * @param __pos Index of character to search back from (default end).
* @return Index of last occurrence.
*
- * Starting from @a pos, searches backward for one of the characters of
- * @a s within this string. If found, returns the index where it was
- * found. If not found, returns npos.
+ * Starting from @a __pos, searches backward for one of the
+ * characters of @a __s within this string. If found, returns
+ * the index where it was found. If not found, returns npos.
*/
size_type
find_last_of(const _CharT* __s, size_type __pos = npos) const
/**
* @brief Find last position of a character.
- * @param c Character to locate.
- * @param pos Index of character to search back from (default end).
+ * @param __c Character to locate.
+ * @param __pos Index of character to search back from (default end).
* @return Index of last occurrence.
*
- * Starting from @a pos, searches backward for @a c within this string.
- * If found, returns the index where it was found. If not found,
- * returns npos.
+ * Starting from @a __pos, searches backward for @a __c within
+ * this string. If found, returns the index where it was
+ * found. If not found, returns npos.
*
* Note: equivalent to rfind(c, pos).
*/
/**
* @brief Find position of a character not in string.
- * @param str String containing characters to avoid.
- * @param pos Index of character to search from (default 0).
+ * @param __str String containing characters to avoid.
+ * @param __pos Index of character to search from (default 0).
* @return Index of first occurrence.
*
- * Starting from @a pos, searches forward for a character not contained
- * in @a str within this string. If found, returns the index where it
- * was found. If not found, returns npos.
+ * Starting from @a __pos, searches forward for a character not
+ * contained in @a __str within this string. If found, returns
+ * the index where it was found. If not found, returns npos.
*/
size_type
find_first_not_of(const __versa_string& __str, size_type __pos = 0) const
/**
* @brief Find position of a character not in C substring.
- * @param s C string containing characters to avoid.
- * @param pos Index of character to search from.
- * @param n Number of characters from s to consider.
+ * @param __s C string containing characters to avoid.
+ * @param __pos Index of character to search from.
+ * @param __n Number of characters from s to consider.
* @return Index of first occurrence.
*
- * Starting from @a pos, searches forward for a character not contained
- * in the first @a n characters of @a s within this string. If found,
- * returns the index where it was found. If not found, returns npos.
+ * Starting from @a __pos, searches forward for a character not
+ * contained in the first @a __n characters of @a __s within
+ * this string. If found, returns the index where it was
+ * found. If not found, returns npos.
*/
size_type
find_first_not_of(const _CharT* __s, size_type __pos,
/**
* @brief Find position of a character not in C string.
- * @param s C string containing characters to avoid.
- * @param pos Index of character to search from (default 0).
+ * @param __s C string containing characters to avoid.
+ * @param __pos Index of character to search from (default 0).
* @return Index of first occurrence.
*
- * Starting from @a pos, searches forward for a character not contained
- * in @a s within this string. If found, returns the index where it
- * was found. If not found, returns npos.
+ * Starting from @a __pos, searches forward for a character not
+ * contained in @a __s within this string. If found, returns
+ * the index where it was found. If not found, returns npos.
*/
size_type
find_first_not_of(const _CharT* __s, size_type __pos = 0) const
/**
* @brief Find position of a different character.
- * @param c Character to avoid.
- * @param pos Index of character to search from (default 0).
+ * @param __c Character to avoid.
+ * @param __pos Index of character to search from (default 0).
* @return Index of first occurrence.
*
- * Starting from @a pos, searches forward for a character other than @a c
- * within this string. If found, returns the index where it was found.
- * If not found, returns npos.
+ * Starting from @a __pos, searches forward for a character
+ * other than @a __c within this string. If found, returns the
+ * index where it was found. If not found, returns npos.
*/
size_type
find_first_not_of(_CharT __c, size_type __pos = 0) const;
/**
* @brief Find last position of a character not in string.
- * @param str String containing characters to avoid.
- * @param pos Index of character to search back from (default end).
+ * @param __str String containing characters to avoid.
+ * @param __pos Index of character to search back from (default end).
* @return Index of last occurrence.
*
- * Starting from @a pos, searches backward for a character not
- * contained in @a str within this string. If found, returns the index
- * where it was found. If not found, returns npos.
+ * Starting from @a __pos, searches backward for a character
+ * not contained in @a __str within this string. If found,
+ * returns the index where it was found. If not found, returns
+ * npos.
*/
size_type
find_last_not_of(const __versa_string& __str,
/**
* @brief Find last position of a character not in C substring.
- * @param s C string containing characters to avoid.
- * @param pos Index of character to search back from.
- * @param n Number of characters from s to consider.
+ * @param __s C string containing characters to avoid.
+ * @param __pos Index of character to search back from.
+ * @param __n Number of characters from s to consider.
* @return Index of last occurrence.
*
- * Starting from @a pos, searches backward for a character not
- * contained in the first @a n characters of @a s within this string.
- * If found, returns the index where it was found. If not found,
- * returns npos.
+ * Starting from @a __pos, searches backward for a character
+ * not contained in the first @a __n characters of @a __s
+ * within this string. If found, returns the index where it
+ * was found. If not found, returns npos.
*/
size_type
find_last_not_of(const _CharT* __s, size_type __pos,
size_type __n) const;
/**
* @brief Find last position of a character not in C string.
- * @param s C string containing characters to avoid.
- * @param pos Index of character to search back from (default end).
+ * @param __s C string containing characters to avoid.
+ * @param __pos Index of character to search back from (default end).
* @return Index of last occurrence.
*
- * Starting from @a pos, searches backward for a character not
- * contained in @a s within this string. If found, returns the index
- * where it was found. If not found, returns npos.
+ * Starting from @a __pos, searches backward for a character
+ * not contained in @a __s within this string. If found,
+ * returns the index where it was found. If not found, returns
+ * npos.
*/
size_type
find_last_not_of(const _CharT* __s, size_type __pos = npos) const
/**
* @brief Find last position of a different character.
- * @param c Character to avoid.
- * @param pos Index of character to search back from (default end).
+ * @param __c Character to avoid.
+ * @param __pos Index of character to search back from (default end).
* @return Index of last occurrence.
*
- * Starting from @a pos, searches backward for a character other than
- * @a c within this string. If found, returns the index where it was
- * found. If not found, returns npos.
+ * Starting from @a __pos, searches backward for a character
+ * other than @a __c within this string. If found, returns the
+ * index where it was found. If not found, returns npos.
*/
size_type
find_last_not_of(_CharT __c, size_type __pos = npos) const;
/**
* @brief Get a substring.
- * @param pos Index of first character (default 0).
- * @param n Number of characters in substring (default remainder).
+ * @param __pos Index of first character (default 0).
+ * @param __n Number of characters in substring (default remainder).
* @return The new string.
* @throw std::out_of_range If pos > size().
*
- * Construct and return a new string using the @a n characters starting
- * at @a pos. If the string is too short, use the remainder of the
- * characters. If @a pos is beyond the end of the string, out_of_range
- * is thrown.
+ * Construct and return a new string using the @a __n
+ * characters starting at @a __pos. If the string is too
+ * short, use the remainder of the characters. If @a __pos is
+ * beyond the end of the string, out_of_range is thrown.
*/
__versa_string
substr(size_type __pos = 0, size_type __n = npos) const
/**
* @brief Compare to a string.
- * @param str String to compare against.
+ * @param __str String to compare against.
* @return Integer < 0, 0, or > 0.
*
- * Returns an integer < 0 if this string is ordered before @a str, 0 if
- * their values are equivalent, or > 0 if this string is ordered after
- * @a str. Determines the effective length rlen of the strings to
- * compare as the smallest of size() and str.size(). The function
- * then compares the two strings by calling traits::compare(data(),
- * str.data(),rlen). If the result of the comparison is nonzero returns
- * it, otherwise the shorter one is ordered first.
+ * Returns an integer < 0 if this string is ordered before @a
+ * __str, 0 if their values are equivalent, or > 0 if this
+ * string is ordered after @a __str. Determines the effective
+ * length rlen of the strings to compare as the smallest of
+ * size() and str.size(). The function then compares the two
+ * strings by calling traits::compare(data(), str.data(),rlen).
+ * If the result of the comparison is nonzero returns it,
+ * otherwise the shorter one is ordered first.
*/
int
compare(const __versa_string& __str) const
/**
* @brief Compare substring to a string.
- * @param pos Index of first character of substring.
- * @param n Number of characters in substring.
- * @param str String to compare against.
+ * @param __pos Index of first character of substring.
+ * @param __n Number of characters in substring.
+ * @param __str String to compare against.
* @return Integer < 0, 0, or > 0.
*
- * Form the substring of this string from the @a n characters starting
- * at @a pos. Returns an integer < 0 if the substring is ordered
- * before @a str, 0 if their values are equivalent, or > 0 if the
- * substring is ordered after @a str. Determines the effective length
- * rlen of the strings to compare as the smallest of the length of the
- * substring and @a str.size(). The function then compares the two
- * strings by calling traits::compare(substring.data(),str.data(),rlen).
- * If the result of the comparison is nonzero returns it, otherwise the
- * shorter one is ordered first.
+ * Form the substring of this string from the @a __n characters
+ * starting at @a __pos. Returns an integer < 0 if the
+ * substring is ordered before @a __str, 0 if their values are
+ * equivalent, or > 0 if the substring is ordered after @a
+ * __str. Determines the effective length rlen of the strings
+ * to compare as the smallest of the length of the substring
+ * and @a __str.size(). The function then compares the two
+ * strings by calling
+ * traits::compare(substring.data(),str.data(),rlen). If the
+ * result of the comparison is nonzero returns it, otherwise
+ * the shorter one is ordered first.
*/
int
compare(size_type __pos, size_type __n,
/**
* @brief Compare substring to a substring.
- * @param pos1 Index of first character of substring.
- * @param n1 Number of characters in substring.
- * @param str String to compare against.
- * @param pos2 Index of first character of substring of str.
- * @param n2 Number of characters in substring of str.
+ * @param __pos1 Index of first character of substring.
+ * @param __n1 Number of characters in substring.
+ * @param __str String to compare against.
+ * @param __pos2 Index of first character of substring of str.
+ * @param __n2 Number of characters in substring of str.
* @return Integer < 0, 0, or > 0.
*
- * Form the substring of this string from the @a n1 characters starting
- * at @a pos1. Form the substring of @a str from the @a n2 characters
- * starting at @a pos2. Returns an integer < 0 if this substring is
- * ordered before the substring of @a str, 0 if their values are
- * equivalent, or > 0 if this substring is ordered after the substring
- * of @a str. Determines the effective length rlen of the strings
- * to compare as the smallest of the lengths of the substrings. The
- * function then compares the two strings by calling
+ * Form the substring of this string from the @a __n1
+ * characters starting at @a __pos1. Form the substring of @a
+ * __str from the @a __n2 characters starting at @a __pos2.
+ * Returns an integer < 0 if this substring is ordered before
+ * the substring of @a __str, 0 if their values are equivalent,
+ * or > 0 if this substring is ordered after the substring of
+ * @a __str. Determines the effective length rlen of the
+ * strings to compare as the smallest of the lengths of the
+ * substrings. The function then compares the two strings by
+ * calling
* traits::compare(substring.data(),str.substr(pos2,n2).data(),rlen).
- * If the result of the comparison is nonzero returns it, otherwise the
- * shorter one is ordered first.
+ * If the result of the comparison is nonzero returns it,
+ * otherwise the shorter one is ordered first.
*/
int
compare(size_type __pos1, size_type __n1, const __versa_string& __str,
/**
* @brief Compare to a C string.
- * @param s C string to compare against.
+ * @param __s C string to compare against.
* @return Integer < 0, 0, or > 0.
*
- * Returns an integer < 0 if this string is ordered before @a s, 0 if
- * their values are equivalent, or > 0 if this string is ordered after
- * @a s. Determines the effective length rlen of the strings to
- * compare as the smallest of size() and the length of a string
- * constructed from @a s. The function then compares the two strings
- * by calling traits::compare(data(),s,rlen). If the result of the
- * comparison is nonzero returns it, otherwise the shorter one is
- * ordered first.
+ * Returns an integer < 0 if this string is ordered before @a
+ * __s, 0 if their values are equivalent, or > 0 if this string
+ * is ordered after @a __s. Determines the effective length
+ * rlen of the strings to compare as the smallest of size() and
+ * the length of a string constructed from @a __s. The
+ * function then compares the two strings by calling
+ * traits::compare(data(),s,rlen). If the result of the
+ * comparison is nonzero returns it, otherwise the shorter one
+ * is ordered first.
*/
int
compare(const _CharT* __s) const;
// 5 String::compare specification questionable
/**
* @brief Compare substring to a C string.
- * @param pos Index of first character of substring.
- * @param n1 Number of characters in substring.
- * @param s C string to compare against.
+ * @param __pos Index of first character of substring.
+ * @param __n1 Number of characters in substring.
+ * @param __s C string to compare against.
* @return Integer < 0, 0, or > 0.
*
- * Form the substring of this string from the @a n1 characters starting
- * at @a pos. Returns an integer < 0 if the substring is ordered
- * before @a s, 0 if their values are equivalent, or > 0 if the
- * substring is ordered after @a s. Determines the effective length
- * rlen of the strings to compare as the smallest of the length of the
- * substring and the length of a string constructed from @a s. The
+ * Form the substring of this string from the @a __n1
+ * characters starting at @a __pos. Returns an integer < 0 if
+ * the substring is ordered before @a __s, 0 if their values
+ * are equivalent, or > 0 if the substring is ordered after @a
+ * __s. Determines the effective length rlen of the strings to
+ * compare as the smallest of the length of the substring and
+ * the length of a string constructed from @a __s. The
* function then compares the two string by calling
- * traits::compare(substring.data(),s,rlen). If the result of the
- * comparison is nonzero returns it, otherwise the shorter one is
- * ordered first.
+ * traits::compare(substring.data(),s,rlen). If the result of
+ * the comparison is nonzero returns it, otherwise the shorter
+ * one is ordered first.
*/
int
compare(size_type __pos, size_type __n1, const _CharT* __s) const;
/**
* @brief Compare substring against a character array.
- * @param pos1 Index of first character of substring.
- * @param n1 Number of characters in substring.
- * @param s character array to compare against.
- * @param n2 Number of characters of s.
+ * @param __pos1 Index of first character of substring.
+ * @param __n1 Number of characters in substring.
+ * @param __s character array to compare against.
+ * @param __n2 Number of characters of s.
* @return Integer < 0, 0, or > 0.
*
- * Form the substring of this string from the @a n1 characters starting
- * at @a pos1. Form a string from the first @a n2 characters of @a s.
- * Returns an integer < 0 if this substring is ordered before the string
- * from @a s, 0 if their values are equivalent, or > 0 if this substring
- * is ordered after the string from @a s. Determines the effective
- * length rlen of the strings to compare as the smallest of the length
- * of the substring and @a n2. The function then compares the two
- * strings by calling traits::compare(substring.data(),s,rlen). If the
- * result of the comparison is nonzero returns it, otherwise the shorter
+ * Form the substring of this string from the @a __n1
+ * characters starting at @a __pos1. Form a string from the
+ * first @a __n2 characters of @a __s. Returns an integer < 0
+ * if this substring is ordered before the string from @a __s,
+ * 0 if their values are equivalent, or > 0 if this substring
+ * is ordered after the string from @a __s. Determines the
+ * effective length rlen of the strings to compare as the
+ * smallest of the length of the substring and @a __n2. The
+ * function then compares the two strings by calling
+ * traits::compare(substring.data(),s,rlen). If the result of
+ * the comparison is nonzero returns it, otherwise the shorter
* one is ordered first.
*
* NB: s must have at least n2 characters, '\0' has no special
// operator+
/**
* @brief Concatenate two strings.
- * @param lhs First string.
- * @param rhs Last string.
- * @return New string with value of @a lhs followed by @a rhs.
+ * @param __lhs First string.
+ * @param __rhs Last string.
+ * @return New string with value of @a __lhs followed by @a __rhs.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Concatenate C string and string.
- * @param lhs First string.
- * @param rhs Last string.
- * @return New string with value of @a lhs followed by @a rhs.
+ * @param __lhs First string.
+ * @param __rhs Last string.
+ * @return New string with value of @a __lhs followed by @a __rhs.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Concatenate character and string.
- * @param lhs First string.
- * @param rhs Last string.
- * @return New string with @a lhs followed by @a rhs.
+ * @param __lhs First string.
+ * @param __rhs Last string.
+ * @return New string with @a __lhs followed by @a __rhs.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Concatenate string and C string.
- * @param lhs First string.
- * @param rhs Last string.
- * @return New string with @a lhs followed by @a rhs.
+ * @param __lhs First string.
+ * @param __rhs Last string.
+ * @return New string with @a __lhs followed by @a __rhs.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Concatenate string and character.
- * @param lhs First string.
- * @param rhs Last string.
- * @return New string with @a lhs followed by @a rhs.
+ * @param __lhs First string.
+ * @param __rhs Last string.
+ * @return New string with @a __lhs followed by @a __rhs.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
// operator ==
/**
* @brief Test equivalence of two strings.
- * @param lhs First string.
- * @param rhs Second string.
- * @return True if @a lhs.compare(@a rhs) == 0. False otherwise.
+ * @param __lhs First string.
+ * @param __rhs Second string.
+ * @return True if @a __lhs.compare(@a __rhs) == 0. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Test equivalence of C string and string.
- * @param lhs C string.
- * @param rhs String.
- * @return True if @a rhs.compare(@a lhs) == 0. False otherwise.
+ * @param __lhs C string.
+ * @param __rhs String.
+ * @return True if @a __rhs.compare(@a __lhs) == 0. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Test equivalence of string and C string.
- * @param lhs String.
- * @param rhs C string.
- * @return True if @a lhs.compare(@a rhs) == 0. False otherwise.
+ * @param __lhs String.
+ * @param __rhs C string.
+ * @return True if @a __lhs.compare(@a __rhs) == 0. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
// operator !=
/**
* @brief Test difference of two strings.
- * @param lhs First string.
- * @param rhs Second string.
- * @return True if @a lhs.compare(@a rhs) != 0. False otherwise.
+ * @param __lhs First string.
+ * @param __rhs Second string.
+ * @return True if @a __lhs.compare(@a __rhs) != 0. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Test difference of C string and string.
- * @param lhs C string.
- * @param rhs String.
- * @return True if @a rhs.compare(@a lhs) != 0. False otherwise.
+ * @param __lhs C string.
+ * @param __rhs String.
+ * @return True if @a __rhs.compare(@a __lhs) != 0. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Test difference of string and C string.
- * @param lhs String.
- * @param rhs C string.
- * @return True if @a lhs.compare(@a rhs) != 0. False otherwise.
+ * @param __lhs String.
+ * @param __rhs C string.
+ * @return True if @a __lhs.compare(@a __rhs) != 0. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
// operator <
/**
* @brief Test if string precedes string.
- * @param lhs First string.
- * @param rhs Second string.
- * @return True if @a lhs precedes @a rhs. False otherwise.
+ * @param __lhs First string.
+ * @param __rhs Second string.
+ * @return True if @a __lhs precedes @a __rhs. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Test if string precedes C string.
- * @param lhs String.
- * @param rhs C string.
- * @return True if @a lhs precedes @a rhs. False otherwise.
+ * @param __lhs String.
+ * @param __rhs C string.
+ * @return True if @a __lhs precedes @a __rhs. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Test if C string precedes string.
- * @param lhs C string.
- * @param rhs String.
- * @return True if @a lhs precedes @a rhs. False otherwise.
+ * @param __lhs C string.
+ * @param __rhs String.
+ * @return True if @a __lhs precedes @a __rhs. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
// operator >
/**
* @brief Test if string follows string.
- * @param lhs First string.
- * @param rhs Second string.
- * @return True if @a lhs follows @a rhs. False otherwise.
+ * @param __lhs First string.
+ * @param __rhs Second string.
+ * @return True if @a __lhs follows @a __rhs. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Test if string follows C string.
- * @param lhs String.
- * @param rhs C string.
- * @return True if @a lhs follows @a rhs. False otherwise.
+ * @param __lhs String.
+ * @param __rhs C string.
+ * @return True if @a __lhs follows @a __rhs. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Test if C string follows string.
- * @param lhs C string.
- * @param rhs String.
- * @return True if @a lhs follows @a rhs. False otherwise.
+ * @param __lhs C string.
+ * @param __rhs String.
+ * @return True if @a __lhs follows @a __rhs. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
// operator <=
/**
* @brief Test if string doesn't follow string.
- * @param lhs First string.
- * @param rhs Second string.
- * @return True if @a lhs doesn't follow @a rhs. False otherwise.
+ * @param __lhs First string.
+ * @param __rhs Second string.
+ * @return True if @a __lhs doesn't follow @a __rhs. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Test if string doesn't follow C string.
- * @param lhs String.
- * @param rhs C string.
- * @return True if @a lhs doesn't follow @a rhs. False otherwise.
+ * @param __lhs String.
+ * @param __rhs C string.
+ * @return True if @a __lhs doesn't follow @a __rhs. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Test if C string doesn't follow string.
- * @param lhs C string.
- * @param rhs String.
- * @return True if @a lhs doesn't follow @a rhs. False otherwise.
+ * @param __lhs C string.
+ * @param __rhs String.
+ * @return True if @a __lhs doesn't follow @a __rhs. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
// operator >=
/**
* @brief Test if string doesn't precede string.
- * @param lhs First string.
- * @param rhs Second string.
- * @return True if @a lhs doesn't precede @a rhs. False otherwise.
+ * @param __lhs First string.
+ * @param __rhs Second string.
+ * @return True if @a __lhs doesn't precede @a __rhs. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Test if string doesn't precede C string.
- * @param lhs String.
- * @param rhs C string.
- * @return True if @a lhs doesn't precede @a rhs. False otherwise.
+ * @param __lhs String.
+ * @param __rhs C string.
+ * @return True if @a __lhs doesn't precede @a __rhs. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Test if C string doesn't precede string.
- * @param lhs C string.
- * @param rhs String.
- * @return True if @a lhs doesn't precede @a rhs. False otherwise.
+ * @param __lhs C string.
+ * @param __rhs String.
+ * @return True if @a __lhs doesn't precede @a __rhs. False otherwise.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Swap contents of two strings.
- * @param lhs First string.
- * @param rhs Second string.
+ * @param __lhs First string.
+ * @param __rhs Second string.
*
- * Exchanges the contents of @a lhs and @a rhs in constant time.
+ * Exchanges the contents of @a __lhs and @a __rhs in constant time.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Read stream into a string.
- * @param is Input stream.
- * @param str Buffer to store into.
+ * @param __is Input stream.
+ * @param __str Buffer to store into.
* @return Reference to the input stream.
*
- * Stores characters from @a is into @a str until whitespace is found, the
- * end of the stream is encountered, or str.max_size() is reached. If
- * is.width() is non-zero, that is the limit on the number of characters
- * stored into @a str. Any previous contents of @a str are erased.
+ * Stores characters from @a __is into @a __str until whitespace is
+ * found, the end of the stream is encountered, or str.max_size()
+ * is reached. If is.width() is non-zero, that is the limit on the
+ * number of characters stored into @a __str. Any previous
+ * contents of @a __str are erased.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Write string to a stream.
- * @param os Output stream.
- * @param str String to write out.
+ * @param __os Output stream.
+ * @param __str String to write out.
* @return Reference to the output stream.
*
- * Output characters of @a str into os following the same rules as for
+ * Output characters of @a __str into os following the same rules as for
* writing a C string.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
/**
* @brief Read a line from stream into a string.
- * @param is Input stream.
- * @param str Buffer to store into.
- * @param delim Character marking end of line.
+ * @param __is Input stream.
+ * @param __str Buffer to store into.
+ * @param __delim Character marking end of line.
* @return Reference to the input stream.
*
- * Stores characters from @a is into @a str until @a delim is found, the
- * end of the stream is encountered, or str.max_size() is reached. If
- * is.width() is non-zero, that is the limit on the number of characters
- * stored into @a str. Any previous contents of @a str are erased. If @a
- * delim was encountered, it is extracted but not stored into @a str.
+ * Stores characters from @a __is into @a __str until @a __delim is
+ * found, the end of the stream is encountered, or str.max_size()
+ * is reached. If is.width() is non-zero, that is the limit on the
+ * number of characters stored into @a __str. Any previous
+ * contents of @a __str are erased. If @a delim was encountered,
+ * it is extracted but not stored into @a __str.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
/**
* @brief Read a line from stream into a string.
- * @param is Input stream.
- * @param str Buffer to store into.
+ * @param __is Input stream.
+ * @param __str Buffer to store into.
* @return Reference to the input stream.
*
- * Stores characters from is into @a str until '\n' is found, the end of
- * the stream is encountered, or str.max_size() is reached. If is.width()
- * is non-zero, that is the limit on the number of characters stored into
- * @a str. Any previous contents of @a str are erased. If end of line was
- * encountered, it is extracted but not stored into @a str.
+ * Stores characters from is into @a __str until '\n' is found, the
+ * end of the stream is encountered, or str.max_size() is reached.
+ * If is.width() is non-zero, that is the limit on the number of
+ * characters stored into @a __str. Any previous contents of @a
+ * __str are erased. If end of line was encountered, it is
+ * extracted but not stored into @a __str.
*/
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
// <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
// software; you can redistribute it and/or modify it under the
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
{
template<typename _Rep, typename _Period = ratio<1>>
namespace chrono
{
- // primary template for duration_cast impl.
+ // Primary template for duration_cast impl.
template<typename _ToDuration, typename _CF, typename _CR,
bool _NumIsOne = false, bool _DenIsOne = false>
struct __duration_cast_impl
}
};
+ /// duration_cast
template<typename _ToDuration, typename _Rep, typename _Period>
inline _ToDuration
duration_cast(const duration<_Rep, _Period>& __d)
__cf::num == 1, __cf::den == 1>::__cast(__d);
}
+ /// treat_as_floating_point
template<typename _Rep>
struct treat_as_floating_point
: is_floating_point<_Rep>
{ };
+ /// duration_values
template<typename _Rep>
struct duration_values
{
const duration<_Rep2, _Period2>& __rhs)
{ return !(__lhs < __rhs); }
+ /// nanoseconds
typedef duration<int64_t, nano> nanoseconds;
+
+ /// microseconds
typedef duration<int64_t, micro> microseconds;
+
+ /// milliseconds
typedef duration<int64_t, milli> milliseconds;
+
+ /// seconds
typedef duration<int64_t > seconds;
+
+ /// minutes
typedef duration<int, ratio< 60>> minutes;
+
+ /// hours
typedef duration<int, ratio<3600>> hours;
/// time_point
duration __d;
};
+ /// time_point_cast
template<typename _ToDuration, typename _Clock, typename _Duration>
inline time_point<_Clock, _ToDuration>
time_point_cast(const time_point<_Clock, _Duration>& __t)
};
#ifdef _GLIBCXX_USE_CLOCK_MONOTONIC
+ /// monotonic_clock
struct monotonic_clock
{
typedef chrono::nanoseconds duration;
#endif
typedef system_clock high_resolution_clock;
- }
-}
+ } // namespace chrono
+
+ // @} group chrono
+} // namespace std
#endif //_GLIBCXX_USE_C99_STDINT_TR1
// The template and inlines for the -*- C++ -*- complex number classes.
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-// 2006, 2007, 2008
+// 2006, 2007, 2008, 2009
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
_GLIBCXX_BEGIN_NAMESPACE(std)
+ /**
+ * @defgroup complex_numbers Complex Numbers
+ * @ingroup numerics
+ *
+ * Classes and functions for complex numbers.
+ * @{
+ */
+
// Forward declarations.
template<typename _Tp> class complex;
template<> class complex<float>;
template<typename _Tp> complex<_Tp> tan(const complex<_Tp>&);
/// Return complex hyperbolic tangent of @a z.
template<typename _Tp> complex<_Tp> tanh(const complex<_Tp>&);
- //@}
// 26.2.2 Primary template class complex
// These bits have to be at the end of this file, so that the
// 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
complex<float>::complex(const complex<double>& __z)
: _M_value(__z.__rep()) { }
#endif
#endif
+ // @} group complex_numbers
+
_GLIBCXX_END_NAMESPACE
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
namespace std
{
+ /**
+ * @defgroup condition_variables Condition Variables
+ * @ingroup concurrency
+ *
+ * Classes for condition_variable support.
+ * @{
+ */
+
/// condition_variable
class condition_variable
{
native_handle()
{ return &_M_cond; }
};
+
+ // @} group condition_variables
}
#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
// File based streams -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-// 2006, 2007, 2008
+// 2006, 2007, 2008, 2009
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// [27.8.1.1] template class basic_filebuf
/**
* @brief The actual work of input and output (for files).
+ * @ingroup io
*
* This class associates both its input and output sequence with an
* external disk file, and maintains a joint file position for both
// [27.8.1.5] Template class basic_ifstream
/**
* @brief Controlling input for files.
+ * @ingroup io
*
* This class supports reading from named files, using the inherited
* functions from std::basic_istream. To control the associated
// [27.8.1.8] Template class basic_ofstream
/**
* @brief Controlling output for files.
+ * @ingroup io
*
* This class supports reading from named files, using the inherited
* functions from std::basic_ostream. To control the associated
// [27.8.1.11] Template class basic_fstream
/**
* @brief Controlling input and output for files.
+ * @ingroup io
*
* This class supports reading from and writing to named files, using
* the inherited functions from std::basic_iostream. To control the
// Input streams -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-// 2006, 2007, 2008
+// 2006, 2007, 2008, 2009
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// [27.6.1.1] Template class basic_istream
/**
* @brief Controlling input.
+ * @ingroup io
*
* This is the base class for all input streams. It provides text
* formatting of all builtin types, and communicates with any class
// 27.6.1.5 Template class basic_iostream
/**
* @brief Merging istream and ostream capabilities.
+ * @ingroup io
*
* This class multiply inherits from the input and output stream classes
* simply to provide a single interface.
// <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.
//
// This file is part of the GNU ISO C++ Library. This library is free
# include <backward/auto_ptr.h>
#endif
+/**
+ * @defgroup memory Memory
+ * @ingroup utilities
+ *
+ * Components for memory allocation, deallocation, and management.
+ */
+
#endif /* _GLIBCXX_MEMORY */
namespace std
{
+ /**
+ * @defgroup mutexes Mutexes
+ * @ingroup concurrency
+ *
+ * Classes for mutex support.
+ * @{
+ */
+
/// mutex
class mutex
{
extern const try_to_lock_t try_to_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
{
public:
return __try_lock_impl<0>::__do_try_lock(__locks);
}
+ /// lock
template<typename _L1, typename _L2, typename ..._L3>
void
lock(_L1&, _L2&, _L3&...);
extern "C" void __once_proxy();
+ /// call_once
template<typename _Callable, typename... _Args>
void
call_once(once_flag& __once, _Callable __f, _Args&&... __args)
if (__e)
__throw_system_error(__e);
}
+
+ // @} group mutexes
}
#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
// Output streams -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-// 2006, 2007, 2008
+// 2006, 2007, 2008, 2009
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// [27.6.2.1] Template class basic_ostream
/**
* @brief Controlling output.
+ * @ingroup io
*
* This is the base class for all output streams. It provides text
* formatting of all builtin types, and communicates with any class
-// <ratio> -*- C++ -*-
+// ratio -*- C++ -*-
-// Copyright (C) 2008 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
namespace std
{
+ /**
+ * @defgroup ratio Rational Arithmetic
+ * @ingroup utilities
+ *
+ * Compile time representation of fininte rational numbers.
+ * @{
+ */
+
template<intmax_t _Pn>
struct __static_sign
: integral_constant<intmax_t, (_Pn < 0) ? -1 : 1>
/**
* @brief Provides compile-time rational arithmetic.
- *
+ *
* This class template represents any finite rational number with a
* numerator and denominator representable by compile-time constants of
* type intmax_t. The ratio is simplified when instantiated.
typedef ratio< 1000000000000, 1> tera;
typedef ratio< 1000000000000000, 1> peta;
typedef ratio< 1000000000000000000, 1> exa;
+
+ // @} group ratio
}
#endif //_GLIBCXX_USE_C99_STDINT_TR1
// String based streams -*- C++ -*-
// 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
// software; you can redistribute it and/or modify it under the
// [27.7.1] template class basic_stringbuf
/**
* @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
* with a sequence of characters, which can be initialized from, or made
// [27.7.2] Template class basic_istringstream
/**
* @brief Controlling input for std::string.
+ * @ingroup io
*
* This class supports reading from objects of type std::basic_string,
* using the inherited functions from std::basic_istream. To control
// [27.7.3] Template class basic_ostringstream
/**
* @brief Controlling output for std::string.
+ * @ingroup io
*
* This class supports writing to objects of type std::basic_string,
* using the inherited functions from std::basic_ostream. To control
// [27.7.4] Template class basic_stringstream
/**
* @brief Controlling input and output for std::string.
+ * @ingroup io
*
* This class supports reading from and writing to objects of type
* std::basic_string, using the inherited functions from
// 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
// software; you can redistribute it and/or modify it under the
_GLIBCXX_BEGIN_NAMESPACE(std)
+ /**
+ * @addtogroup exceptions
+ * @{
+ */
+
/** Logic errors represent problems in the internal logic of a program;
* in theory, these are preventable, and even detectable before the
* program runs (e.g., violations of class invariants).
explicit underflow_error(const string& __arg);
};
+ // @} group exceptions
+
_GLIBCXX_END_NAMESPACE
#endif /* _GLIBCXX_STDEXCEPT */
{ 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
{
private:
namespace std
{
+ /**
+ * @defgroup threads Threads
+ * @ingroup concurrency
+ *
+ * Classes for thread support.
+ * @{
+ */
+
/// thread
class 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
{
/// get_id
}
#endif
}
+
+ // @} group threads
}
#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1
-// <type_traits> -*- C++ -*-
+// C++0x type_traits -*- C++ -*-
-// Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
namespace std
{
+ /** @addtogroup metaprogramming
+ * @{
+ */
+
// Primary classification traits.
/// is_lvalue_reference
// Define a nested type if some predicate holds.
- /// Primary template.
+ // Primary template.
+ /// enable_if
template<bool, typename _Tp = void>
struct enable_if
{ };
- /// Partial specialization for true.
+ // Partial specialization for true.
template<typename _Tp>
struct enable_if<true, _Tp>
{ typedef _Tp type; };
- // A conditional expression, but for types.
- // If true, first, if false, second.
- /// Primary template.
+ // A conditional expression, but for types. If true, first, if false, second.
+ // Primary template.
+ /// conditional
template<bool _Cond, typename _Iftrue, typename _Iffalse>
struct conditional
{ typedef _Iftrue type; };
- /// Partial specialization for false.
+ // Partial specialization for false.
template<typename _Iftrue, typename _Iffalse>
struct conditional<false, _Iftrue, _Iffalse>
{ typedef _Iffalse type; };
// Given an integral/enum type, return the corresponding unsigned
// integer type.
- /// Primary template.
+ // Primary template.
+ /// make_unsigned
template<typename _Tp>
struct make_unsigned
{ typedef typename __make_unsigned_selector<_Tp>::__type type; };
// Given an integral/enum type, return the corresponding signed
// integer type.
- /// Primary template.
+ // Primary template.
+ /// make_signed
template<typename _Tp>
struct make_signed
{ typedef typename __make_signed_selector<_Tp>::__type type; };
template<>
struct make_signed<bool>;
+ /// common_type
template<typename... _Tp>
struct common_type;
typedef typename
common_type<typename common_type<_Tp, _Up>::type, _Vp...>::type type;
};
+
+ // @} group metaprogramming
}
#endif // __GXX_EXPERIMENTAL_CXX0X__
// The template and inlines for the -*- C++ -*- valarray class.
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-// 2006, 2007
+// 2006, 2007, 2009
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
_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.
*
return _M_data[__i];
}
+ // @} group numeric_arrays
+
_GLIBCXX_END_NAMESPACE
#include <bits/valarray_after.h>
_GLIBCXX_BEGIN_NAMESPACE(std)
+ /**
+ * @addtogroup numeric_arrays
+ * @{
+ */
+
template<typename _Tp>
inline
valarray<_Tp>::valarray() : _M_size(0), _M_data(0) {}
#undef _DEFINE_BINARY_OPERATOR
+ // @} group numeric_arrays
+
_GLIBCXX_END_NAMESPACE
#endif /* _GLIBCXX_VALARRAY */
/**
* @brief A standard container for storing a fixed size sequence of elements.
*
- * @ingroup containers
* @ingroup sequences
*
* Meets the requirements of a <a href="tables.html#65">container</a>, a
// 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
// software; you can redistribute it and/or modify it under the
{
_GLIBCXX_BEGIN_NAMESPACE_TR1
+ /**
+ * @addtogroup complex_numbers
+ * @{
+ */
+
// Forward declarations.
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> fabs(const std::complex<_Tp>&);
#endif
- /// acos(__z) [8.1.2].
- // Effects: Behaves the same as C99 function cacos, defined
- // in subclause 7.3.5.1.
template<typename _Tp>
inline std::complex<_Tp>
__complex_acos(const std::complex<_Tp>& __z)
acos(const std::complex<_Tp>& __z)
{ return __complex_acos(__z.__rep()); }
#else
+ /// acos(__z) [8.1.2].
+ // Effects: Behaves the same as C99 function cacos, defined
+ // in subclause 7.3.5.1.
template<typename _Tp>
inline std::complex<_Tp>
acos(const std::complex<_Tp>& __z)
{ return __complex_acos(__z); }
#endif
- /// asin(__z) [8.1.3].
- // Effects: Behaves the same as C99 function casin, defined
- // in subclause 7.3.5.2.
template<typename _Tp>
inline std::complex<_Tp>
__complex_asin(const std::complex<_Tp>& __z)
asin(const std::complex<_Tp>& __z)
{ return __complex_asin(__z.__rep()); }
#else
+ /// asin(__z) [8.1.3].
+ // Effects: Behaves the same as C99 function casin, defined
+ // in subclause 7.3.5.2.
template<typename _Tp>
inline std::complex<_Tp>
asin(const std::complex<_Tp>& __z)
{ return __complex_asin(__z); }
#endif
- /// atan(__z) [8.1.4].
- // Effects: Behaves the same as C99 function catan, defined
- // in subclause 7.3.5.3.
template<typename _Tp>
std::complex<_Tp>
__complex_atan(const std::complex<_Tp>& __z)
atan(const std::complex<_Tp>& __z)
{ return __complex_atan(__z.__rep()); }
#else
+ /// atan(__z) [8.1.4].
+ // Effects: Behaves the same as C99 function catan, defined
+ // in subclause 7.3.5.3.
template<typename _Tp>
inline std::complex<_Tp>
atan(const std::complex<_Tp>& __z)
{ return __complex_atan(__z); }
#endif
- /// acosh(__z) [8.1.5].
- // Effects: Behaves the same as C99 function cacosh, defined
- // in subclause 7.3.6.1.
template<typename _Tp>
std::complex<_Tp>
__complex_acosh(const std::complex<_Tp>& __z)
acosh(const std::complex<_Tp>& __z)
{ return __complex_acosh(__z.__rep()); }
#else
+ /// acosh(__z) [8.1.5].
+ // Effects: Behaves the same as C99 function cacosh, defined
+ // in subclause 7.3.6.1.
template<typename _Tp>
inline std::complex<_Tp>
acosh(const std::complex<_Tp>& __z)
{ return __complex_acosh(__z); }
#endif
- /// asinh(__z) [8.1.6].
- // Effects: Behaves the same as C99 function casin, defined
- // in subclause 7.3.6.2.
template<typename _Tp>
std::complex<_Tp>
__complex_asinh(const std::complex<_Tp>& __z)
asinh(const std::complex<_Tp>& __z)
{ return __complex_asinh(__z.__rep()); }
#else
+ /// asinh(__z) [8.1.6].
+ // Effects: Behaves the same as C99 function casin, defined
+ // in subclause 7.3.6.2.
template<typename _Tp>
inline std::complex<_Tp>
asinh(const std::complex<_Tp>& __z)
{ return __complex_asinh(__z); }
#endif
- /// atanh(__z) [8.1.7].
- // Effects: Behaves the same as C99 function catanh, defined
- // in subclause 7.3.6.3.
template<typename _Tp>
std::complex<_Tp>
__complex_atanh(const std::complex<_Tp>& __z)
atanh(const std::complex<_Tp>& __z)
{ return __complex_atanh(__z.__rep()); }
#else
+ /// atanh(__z) [8.1.7].
+ // Effects: Behaves the same as C99 function catanh, defined
+ // in subclause 7.3.6.3.
template<typename _Tp>
inline std::complex<_Tp>
atanh(const std::complex<_Tp>& __z)
{ return __complex_atanh(__z); }
#endif
- /// fabs(__z) [8.1.8].
- // Effects: Behaves the same as C99 function cabs, defined
- // in subclause 7.3.8.1.
template<typename _Tp>
#ifdef _GLIBCXX_INCLUDE_AS_CXX0X
inline _Tp
#else
inline std::complex<_Tp>
#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)
{ return std::abs(__z); }
std::complex<__type>(__y));
}
+ // @} group complex_numbers
+
_GLIBCXX_END_NAMESPACE_TR1
}
// 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
// software; you can redistribute it and/or modify it under the
/// The type of placeholder objects defined by libstdc++.
template<int _Num> struct _Placeholder { };
- // 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 std::placeholders
+ * @brief ISO C++ 0x entities sub namespace for functional.
+ *
+ * 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
_GLIBCXX_BEGIN_NAMESPACE_TR1
/**
- * @addtogroup tr1_regex Regular Expressions
+ * @defgroup tr1_regex Regular Expressions
* A facility for performing regular expression pattern matching.
*/
//@{
+/** @namespace std::regex_constants
+ * @brief ISO C++ 0x entities sub namespace for regex.
+ */
namespace regex_constants
{
/**
// [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
: public std::runtime_error
typedef regex_token_iterator<wstring::const_iterator> wsregex_token_iterator;
#endif
- //@} // group tr1_regex
+ //@}
_GLIBCXX_END_NAMESPACE_TR1
}
// 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
// software; you can redistribute it and/or modify it under the
{
_GLIBCXX_BEGIN_NAMESPACE_TR1
+ /**
+ * @defgroup metaprogramming Type Traits
+ * @ingroup utilities
+ *
+ * Compile time type transformation and information.
+ * @{
+ */
+
// For use in __is_convertible_simple.
struct __sfinae_types
{
struct _Trait<_Type> \
: public integral_constant<bool, _Value> { };
- /// helper classes [4.3].
+ // helper classes [4.3].
+
+ /// integral_constant
template<typename _Tp, _Tp __v>
struct integral_constant
{
template<typename _Tp, _Tp __v>
const _Tp integral_constant<_Tp, __v>::value;
+ /// remove_cv
template<typename>
struct remove_cv;
: public false_type { };
_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>
struct is_void
: public integral_constant<bool, (__is_void_helper<typename
remove_cv<_Tp>::type>::value)>
{ };
- /// composite type traits [4.5.2].
+ // composite type traits [4.5.2].
+
+ /// is_arithmetic
template<typename _Tp>
struct is_arithmetic
: public integral_constant<bool, (is_integral<_Tp>::value
|| is_member_function_pointer<_Tp>::value)>
{ };
- /// type properties [4.5.3].
+ // type properties [4.5.3].
+ /// is_const
template<typename>
struct is_const
: public false_type { };
- /// is_const
template<typename _Tp>
struct is_const<_Tp const>
: public true_type { };
_Uint - 1>::value>
{ };
- /// relationships between types [4.6].
+ // relationships between types [4.6].
+
+ /// is_same
template<typename, typename>
struct is_same
: public false_type { };
struct is_same<_Tp, _Tp>
: public true_type { };
- /// const-volatile modifications [4.7.1].
+ // const-volatile modifications [4.7.1].
+
+ /// remove_const
template<typename _Tp>
struct remove_const
{ typedef _Tp 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>
struct remove_extent
{ typedef _Tp type; };
struct remove_all_extents<_Tp[]>
{ typedef typename remove_all_extents<_Tp>::type type; };
- /// pointer modifications [4.7.4].
+ // pointer modifications [4.7.4].
+
template<typename _Tp, typename>
struct __remove_pointer_helper
{ typedef _Tp type; };
#undef _DEFINE_SPEC_2_HELPER
#undef _DEFINE_SPEC
+ // @} group metaprogramming
_GLIBCXX_END_NAMESPACE_TR1
}
* at most one of each key value) that associates values of another type
* with the keys.
*
- * @ingroup containers
* @ingroup unordered_associative_containers
*
* Meets the requirements of a <a href="tables.html#65">container</a>, and
* (possibly containing multiple of each key value) that associates
* values of another type with the keys.
*
- * @ingroup containers
* @ingroup unordered_associative_containers
*
* Meets the requirements of a <a href="tables.html#65">container</a>, and
* at most one of each key value) in which the elements' keys are
* the elements themselves.
*
- * @ingroup containers
* @ingroup unordered_associative_containers
*
* Meets the requirements of a <a href="tables.html#65">container</a>, and
* (possibly containing multiple of each key value) in which the
* elements' keys are the elements themselves.
*
- * @ingroup containers
* @ingroup unordered_associative_containers
*
* Meets the requirements of a <a href="tables.html#65">container</a>, and
// 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.
//
#ifdef __cplusplus
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
{
virtual ~__forced_unwind() throw();
// 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.
//
int
__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*
__cxa_demangle(const char* __mangled_name, char* __output_buffer,
size_t* __length, int* __status);
} // 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;
#endif // __cplusplus
// Exception Handling support header for -*- C++ -*-
// 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
//
// This file is part of GCC.
namespace std
{
+ /**
+ * @defgroup exceptions Exceptions
+ * @ingroup diagnostics
+ *
+ * Classes and functions for reporting errors via exception classes.
+ * @{
+ */
+
/**
* @brief Base class for all library exceptions.
*
*/
bool uncaught_exception() throw();
+ // @} group exceptions
} // namespace std
_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
- @code
- std::set_terminate (__gnu_cxx::__verbose_terminate_handler)
- @endcode
- to use. For more info, see
- http://gcc.gnu.org/onlinedocs/libstdc++/19_diagnostics/howto.html#4
-
- In 3.4 and later, this is on by default.
- */
- void __verbose_terminate_handler ();
+ /**
+ * @brief A replacement for the standard terminate_handler which
+ * prints more information about the terminating exception (if any)
+ * on stderr.
+ *
+ * @ingroup exceptions
+ *
+ * Call
+ * @code
+ * std::set_terminate(__gnu_cxx::__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
namespace std
{
+ /**
+ * @addtogroup exceptions
+ * @{
+ */
+
// Hide the free operators from other types
namespace __exception_ptr
{
void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__));
/// Obtain an %exception_ptr pointing to a copy of the supplied object.
- template <class _Ex>
- exception_ptr copy_exception(_Ex __ex) throw();
-
+ template<typename _Ex>
+ exception_ptr
+ copy_exception(_Ex __ex) throw();
namespace __exception_ptr
{
- bool 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();
+
+ bool
+ operator!=(const exception_ptr&, const exception_ptr&) throw();
class exception_ptr
{
#ifdef __GXX_EXPERIMENTAL_CXX0X__
exception_ptr(exception_ptr&& __o) throw()
- : _M_exception_object(__o._M_exception_object)
- {
- __o._M_exception_object = 0;
- }
+ : _M_exception_object(__o._M_exception_object)
+ { __o._M_exception_object = 0; }
#endif
- exception_ptr& operator=(const exception_ptr&) throw();
+ exception_ptr&
+ operator=(const exception_ptr&) throw();
#ifdef __GXX_EXPERIMENTAL_CXX0X__
- exception_ptr& operator=(exception_ptr&& __o) throw()
+ exception_ptr&
+ operator=(exception_ptr&& __o) throw()
{
exception_ptr(__o).swap(*this);
return *this;
~exception_ptr() throw();
- void swap(exception_ptr&) throw();
+ void
+ swap(exception_ptr&) throw();
#ifdef __GXX_EXPERIMENTAL_CXX0X__
- void swap(exception_ptr &&__o) throw()
+ void
+ swap(exception_ptr &&__o) throw()
{
void *__tmp = _M_exception_object;
_M_exception_object = __o._M_exception_object;
bool operator!() const throw();
operator __safe_bool() const throw();
- friend bool operator==(const exception_ptr&,
- const exception_ptr&) throw();
+ friend bool
+ 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
- template <class _Ex>
- exception_ptr copy_exception(_Ex __ex) throw()
- {
- __try
- {
- throw __ex;
- }
- __catch(...)
- {
- return current_exception ();
- }
- }
-
+ template<typename _Ex>
+ exception_ptr
+ copy_exception(_Ex __ex) throw()
+ {
+ __try
+ {
+ throw __ex;
+ }
+ __catch(...)
+ {
+ return current_exception ();
+ }
+ }
+
+ // @} group exceptions
} // namespace std
} // extern "C++"
// The -*- C++ -*- dynamic memory management header.
// 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
// This file is part of GCC.
{
/**
* @brief Exception possibly thrown by @c new.
+ * @ingroup exceptions
*
* @c bad_alloc (or classes derived from it) is used to report allocation
* errors from the throwing forms of @c new. */
/**
* @brief Thrown during incorrect typecasting.
+ * @ingroup exceptions
*
* If you attempt an invalid @c dynamic_cast expression, an instance of
* this class (or something derived from this class) is thrown. */
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
{
public:
// { dg-options "-std=gnu++0x" }
// { 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
// software; you can redistribute it and/or modify it under the
// { dg-error "instantiated from here" "" { target *-*-* } 30 }
// { dg-error "instantiated from here" "" { target *-*-* } 39 }
-// { dg-error "not exactly representable" "" { target *-*-* } 218 }
-// { dg-error "integral duration with floating point" "" { target *-*-* } 208 }
+// { dg-error "not exactly representable" "" { target *-*-* } 232 }
+// { dg-error "integral duration with floating point" "" { target *-*-* } 222 }
// { dg-excess-errors "In instantiation of" }
// { dg-require-cstdint "" }
// 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
// software; you can redistribute it and/or modify it under the
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-excess-errors "In instantiation of" }
// { dg-require-cstdint "" }
// 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
// software; you can redistribute it and/or modify it under the
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-excess-errors "In instantiation of" }
// { dg-require-cstdint "" }
// 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
// software; you can redistribute it and/or modify it under the
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-excess-errors "In instantiation of" }
// 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
// software; you can redistribute it and/or modify it under the
// { dg-error "instantiated from here" "" { target *-*-* } 41 }
// { dg-error "instantiated from here" "" { target *-*-* } 43 }
-// { dg-error "invalid use of incomplete type" "" { target *-*-* } 555 }
-// { dg-error "declaration of" "" { target *-*-* } 518 }
+// { dg-error "invalid use of incomplete type" "" { target *-*-* } 562 }
+// { dg-error "declaration of" "" { target *-*-* } 524 }
// { dg-excess-errors "At global scope" }
// { dg-excess-errors "In instantiation of" }
// 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
// software; you can redistribute it and/or modify it under the
// { dg-error "instantiated from here" "" { target *-*-* } 41 }
// { dg-error "instantiated from here" "" { target *-*-* } 43 }
-// { dg-error "invalid use of incomplete type" "" { target *-*-* } 477 }
-// { dg-error "declaration of" "" { target *-*-* } 440 }
+// { dg-error "invalid use of incomplete type" "" { target *-*-* } 483 }
+// { dg-error "declaration of" "" { target *-*-* } 445 }
// { dg-excess-errors "At global scope" }
// { dg-excess-errors "In instantiation of" }
// { dg-options "-std=gnu++0x" }
// { 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
// software; you can redistribute it and/or modify it under the
// { dg-error "instantiated from here" "" { target *-*-* } 35 }
// { dg-error "instantiated from here" "" { target *-*-* } 41 }
// { dg-error "instantiated from here" "" { target *-*-* } 47 }
-// { dg-error "denominator cannot be zero" "" { target *-*-* } 150 }
-// { dg-error "out of range" "" { target *-*-* } 151 }
+// { dg-error "denominator cannot be zero" "" { target *-*-* } 158 }
+// { dg-error "out of range" "" { target *-*-* } 159 }
// { dg-excess-errors "In instantiation of" }
// 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
// software; you can redistribute it and/or modify it under the
// { dg-error "instantiated from here" "" { target *-*-* } 30 }
// { dg-error "instantiated from here" "" { target *-*-* } 36 }
// { dg-error "instantiated from here" "" { target *-*-* } 37 }
-// { dg-error "overflow in addition" "" { target *-*-* } 127 }
-// { dg-error "overflow in multiplication" "" { target *-*-* } 95 }
-// { dg-error "overflow in multiplication" "" { target *-*-* } 97 }
-// { dg-error "overflow in multiplication" "" { target *-*-* } 99 }
+// { dg-error "overflow in addition" "" { target *-*-* } 135 }
+// { dg-error "overflow in multiplication" "" { target *-*-* } 103 }
+// { dg-error "overflow in multiplication" "" { target *-*-* } 105 }
+// { dg-error "overflow in multiplication" "" { target *-*-* } 107 }
// { dg-excess-errors "In instantiation of" }
// { dg-excess-errors "out of range" }
// { dg-error "used here" "" { target *-*-* } 43 }
// { dg-error "no matching" "" { target *-*-* } 49 }
// { dg-error "used here" "" { target *-*-* } 50 }
-// { dg-error "candidates are" "" { target *-*-* } 214 }
-// { dg-error "deleted function" "" { target *-*-* } 214 }
-// { dg-error "deleted function" "" { target *-*-* } 360 }
+// { dg-error "candidates are" "" { target *-*-* } 219 }
+// { dg-error "deleted function" "" { target *-*-* } 219 }
+// { dg-error "deleted function" "" { target *-*-* } 365 }
// { dg-excess-errors "note" }
}
// { dg-error "used here" "" { target *-*-* } 36 }
-// { dg-error "deleted function" "" { target *-*-* } 350 }
+// { dg-error "deleted function" "" { target *-*-* } 355 }
// 2007-04-27 Paolo Carlini <pcarlini@suse.de>
-// 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
// software; you can redistribute it and/or modify it under the
// USA.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1504 }
+// { dg-error "no matching" "" { target *-*-* } 1503 }
// { dg-excess-errors "" }
#include <deque>
// 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
// software; you can redistribute it and/or modify it under the
// USA.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1443 }
+// { dg-error "no matching" "" { target *-*-* } 1442 }
// { dg-excess-errors "" }
#include <deque>
// 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
// software; you can redistribute it and/or modify it under the
// USA.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1443 }
+// { dg-error "no matching" "" { target *-*-* } 1442 }
// { dg-excess-errors "" }
#include <deque>
// 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
// software; you can redistribute it and/or modify it under the
// USA.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1588 }
+// { dg-error "no matching" "" { target *-*-* } 1587 }
// { dg-excess-errors "" }
#include <deque>
// 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
// software; you can redistribute it and/or modify it under the
// USA.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1389 }
+// { dg-error "no matching" "" { target *-*-* } 1388 }
// { dg-excess-errors "" }
#include <list>
// 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
// software; you can redistribute it and/or modify it under the
// USA.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1358 }
+// { dg-error "no matching" "" { target *-*-* } 1357 }
// { dg-excess-errors "" }
#include <list>
// 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
// software; you can redistribute it and/or modify it under the
// USA.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1358 }
+// { dg-error "no matching" "" { target *-*-* } 1357 }
// { dg-excess-errors "" }
#include <list>
// 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
// software; you can redistribute it and/or modify it under the
// USA.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1358 }
+// { dg-error "no matching" "" { target *-*-* } 1357 }
// { dg-excess-errors "" }
#include <list>
// USA.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1057 }
+// { dg-error "no matching" "" { target *-*-* } 1056 }
// { dg-excess-errors "" }
#include <vector>
// USA.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 997 }
+// { dg-error "no matching" "" { target *-*-* } 996 }
// { dg-excess-errors "" }
#include <vector>
// USA.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 997 }
+// { dg-error "no matching" "" { target *-*-* } 996 }
// { dg-excess-errors "" }
#include <vector>
// USA.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1098 }
+// { dg-error "no matching" "" { target *-*-* } 1097 }
// { dg-excess-errors "" }
#include <vector>
// { 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.
//
// This file is part of the GNU ISO C++ Library. This library is free
}
// { dg-error "synthesized" "" { target *-*-* } 42 }
// { 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-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.
//
// This file is part of the GNU ISO C++ Library. This library is free
}
// { dg-error "within this context" "" { target *-*-* } 36 }
// { dg-error "synthesized" "" { target *-*-* } 42 }
-// { dg-error "is private" "" { target *-*-* } 790 }
+// { dg-error "is private" "" { target *-*-* } 795 }
// { dg-error "copy constructor" "" { target *-*-* } 0 }
// { dg-options "-std=gnu++0x" }
// { 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
// software; you can redistribute it and/or modify it under the
}
// { dg-error "used here" "" { target *-*-* } 530 }
-// { dg-error "deleted function" "" { target *-*-* } 239 }
-// { dg-error "deleted function" "" { target *-*-* } 257 }
-// { dg-error "deleted function" "" { target *-*-* } 275 }
-// { dg-error "deleted function" "" { target *-*-* } 293 }
-// { dg-error "deleted function" "" { target *-*-* } 311 }
-// { dg-error "deleted function" "" { target *-*-* } 329 }
-// { dg-error "deleted function" "" { target *-*-* } 347 }
-// { dg-error "deleted function" "" { target *-*-* } 365 }
-// { dg-error "deleted function" "" { target *-*-* } 383 }
-// { dg-error "deleted function" "" { target *-*-* } 401 }
-// { dg-error "deleted function" "" { target *-*-* } 419 }
-// { dg-error "deleted function" "" { target *-*-* } 437 }
-// { dg-error "deleted function" "" { target *-*-* } 455 }
-// { dg-error "deleted function" "" { target *-*-* } 473 }
-// { dg-error "deleted function" "" { target *-*-* } 491 }
+// { dg-error "deleted function" "" { target *-*-* } 244 }
+// { dg-error "deleted function" "" { target *-*-* } 262 }
+// { dg-error "deleted function" "" { target *-*-* } 280 }
+// { dg-error "deleted function" "" { target *-*-* } 298 }
+// { dg-error "deleted function" "" { target *-*-* } 316 }
+// { dg-error "deleted function" "" { target *-*-* } 334 }
+// { dg-error "deleted function" "" { target *-*-* } 352 }
+// { dg-error "deleted function" "" { target *-*-* } 370 }
+// { dg-error "deleted function" "" { target *-*-* } 388 }
+// { dg-error "deleted function" "" { target *-*-* } 406 }
+// { dg-error "deleted function" "" { target *-*-* } 424 }
+// { dg-error "deleted function" "" { target *-*-* } 442 }
+// { dg-error "deleted function" "" { target *-*-* } 460 }
+// { dg-error "deleted function" "" { target *-*-* } 478 }
+// { dg-error "deleted function" "" { target *-*-* } 496 }
// { dg-excess-errors "In member function" }
// { dg-options "-std=gnu++0x" }
// { 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
// software; you can redistribute it and/or modify it under the
}
// { dg-error "used here" "" { target *-*-* } 569 }
-// { dg-error "deleted function" "" { target *-*-* } 238 }
-// { dg-error "deleted function" "" { target *-*-* } 256 }
-// { dg-error "deleted function" "" { target *-*-* } 274 }
-// { dg-error "deleted function" "" { target *-*-* } 292 }
-// { dg-error "deleted function" "" { target *-*-* } 310 }
-// { dg-error "deleted function" "" { target *-*-* } 328 }
-// { dg-error "deleted function" "" { target *-*-* } 346 }
-// { dg-error "deleted function" "" { target *-*-* } 364 }
-// { dg-error "deleted function" "" { target *-*-* } 382 }
-// { dg-error "deleted function" "" { target *-*-* } 400 }
-// { dg-error "deleted function" "" { target *-*-* } 418 }
-// { dg-error "deleted function" "" { target *-*-* } 436 }
-// { dg-error "deleted function" "" { target *-*-* } 454 }
-// { dg-error "deleted function" "" { target *-*-* } 472 }
-// { dg-error "deleted function" "" { target *-*-* } 490 }
+// { dg-error "deleted function" "" { target *-*-* } 243 }
+// { dg-error "deleted function" "" { target *-*-* } 261 }
+// { dg-error "deleted function" "" { target *-*-* } 279 }
+// { dg-error "deleted function" "" { target *-*-* } 297 }
+// { dg-error "deleted function" "" { target *-*-* } 315 }
+// { dg-error "deleted function" "" { target *-*-* } 333 }
+// { dg-error "deleted function" "" { target *-*-* } 351 }
+// { dg-error "deleted function" "" { target *-*-* } 369 }
+// { dg-error "deleted function" "" { target *-*-* } 387 }
+// { dg-error "deleted function" "" { target *-*-* } 405 }
+// { dg-error "deleted function" "" { target *-*-* } 423 }
+// { dg-error "deleted function" "" { target *-*-* } 441 }
+// { dg-error "deleted function" "" { target *-*-* } 459 }
+// { dg-error "deleted function" "" { target *-*-* } 477 }
+// { dg-error "deleted function" "" { target *-*-* } 495 }
// { dg-excess-errors "In member function" }
}
// { dg-error "used here" "" { target *-*-* } 40 }
-// { dg-error "deleted function" "" { target *-*-* } 64 }
+// { dg-error "deleted function" "" { target *-*-* } 72 }
}
// { dg-error "used here" "" { target *-*-* } 39 }
-// { dg-error "deleted function" "" { target *-*-* } 63 }
+// { dg-error "deleted function" "" { target *-*-* } 71 }
}
// { dg-error "used here" "" { target *-*-* } 40 }
-// { dg-error "deleted function" "" { target *-*-* } 172 }
+// { dg-error "deleted function" "" { target *-*-* } 180 }
}
// { dg-error "used here" "" { target *-*-* } 39 }
-// { dg-error "deleted function" "" { target *-*-* } 171 }
+// { dg-error "deleted function" "" { target *-*-* } 179 }
}
// { dg-error "used here" "" { target *-*-* } 41 }
-// { dg-error "deleted function" "" { target *-*-* } 80 }
+// { dg-error "deleted function" "" { target *-*-* } 88 }
}
// { dg-error "used here" "" { target *-*-* } 40 }
-// { dg-error "deleted function" "" { target *-*-* } 79 }
+// { dg-error "deleted function" "" { target *-*-* } 87 }
}
// { dg-error "used here" "" { target *-*-* } 41 }
-// { dg-error "deleted function" "" { target *-*-* } 132 }
+// { dg-error "deleted function" "" { target *-*-* } 140 }
}
// { dg-error "used here" "" { target *-*-* } 40 }
-// { dg-error "deleted function" "" { target *-*-* } 131 }
+// { dg-error "deleted function" "" { target *-*-* } 139 }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// 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
// software; you can redistribute it and/or modify it under the
}
// { dg-error "used here" "" { target *-*-* } 41 }
-// { dg-error "deleted function" "" { target *-*-* } 295 }
+// { dg-error "deleted function" "" { target *-*-* } 303 }
// { dg-require-cstdint "" }
// { dg-require-gthreads "" }
-// 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
// software; you can redistribute it and/or modify it under the
}
// { dg-error "used here" "" { target *-*-* } 40 }
-// { dg-error "deleted function" "" { target *-*-* } 294 }
+// { dg-error "deleted function" "" { target *-*-* } 302 }
}
// { dg-error "used here" "" { target *-*-* } 32 }
-// { dg-error "deleted function" "" { target *-*-* } 138 }
+// { dg-error "deleted function" "" { target *-*-* } 146 }
}
// { dg-error "here" "" { target *-*-* } 31 }
-// { dg-error "deleted function" "" { target *-*-* } 119 }
+// { dg-error "deleted function" "" { target *-*-* } 127 }
// { dg-excess-errors "In file included from" }
}
// { dg-error "used here" "" { target *-*-* } 41 }
-// { dg-error "deleted function" "" { target *-*-* } 190 }
+// { dg-error "deleted function" "" { target *-*-* } 198 }
}
// { dg-error "used here" "" { target *-*-* } 40 }
-// { dg-error "deleted function" "" { target *-*-* } 189 }
+// { dg-error "deleted function" "" { target *-*-* } 197 }