Commit 7897a1c0 by Benjamin Kosnik

user.cfg.in: Add macros, directories.

2011-12-10  Benjamin Kosnik  <bkoz@redhat.com>

	* doc/doxygen/user.cfg.in: Add macros, directories.
	* include/bits/locale_classes.h: Remove doxygen warnings, fix markup.
	* include/bits/locale_classes.tcc: Same.
	* include/bits/shared_ptr.h: Same.
	* include/bits/stl_algo.h: Same.
	* include/bits/stl_list.h: Same.
	* include/bits/stl_numeric.h: Same.
	* include/debug/safe_base.h: Same.
	* include/parallel/equally_split.h: Same.
	* include/std/bitset: Same.
	* include/std/complex: Same.
	* include/std/fstream: Same.
	* include/std/istream: Same.
	* include/std/ostream: Same.
	* include/tr2/dynamic_bitset: Same.
	* scripts/run_doxygen: Remove munging for names that no longer exist.

	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
	Adjust line numbers.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_1_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_2_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.

From-SVN: r182189
parent f431d7ca
2011-12-12 François Dumont <fdumont@gcc.gnu.org> 2011-12-10 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in: Add macros, directories.
* include/bits/locale_classes.h: Remove doxygen warnings, fix markup.
* include/bits/locale_classes.tcc: Same.
* include/bits/shared_ptr.h: Same.
* include/bits/stl_algo.h: Same.
* include/bits/stl_list.h: Same.
* include/bits/stl_numeric.h: Same.
* include/debug/safe_base.h: Same.
* include/parallel/equally_split.h: Same.
* include/std/bitset: Same.
* include/std/complex: Same.
* include/std/fstream: Same.
* include/std/istream: Same.
* include/std/ostream: Same.
* include/tr2/dynamic_bitset: Same.
* scripts/run_doxygen: Remove munging for names that no longer exist.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Adjust line numbers.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.
2011-12-10 François Dumont <fdumont@gcc.gnu.org>
* include/profile/unordered_set: Minor formatting changes. * include/profile/unordered_set: Minor formatting changes.
(unordered_set<>::_M_profile_destruct, (unordered_set<>::_M_profile_destruct,
...@@ -119,7 +146,7 @@ ...@@ -119,7 +146,7 @@
Likewise. Likewise.
2011-12-04 Markus Trippelsdorf <markus@trippelsdorf.de> 2011-12-04 Markus Trippelsdorf <markus@trippelsdorf.de>
Jonathan Wakely <jwakely.gcc@gmail.com> Jonathan Wakely <jwakely.gcc@gmail.com>
* include/bits/stl_heap.h (pop_heap): Check for non-empty range in * include/bits/stl_heap.h (pop_heap): Check for non-empty range in
overload taking a predicate. overload taking a predicate.
...@@ -145,37 +172,37 @@ ...@@ -145,37 +172,37 @@
2011-11-30 Benjamin Kosnik <bkoz@redhat.com> 2011-11-30 Benjamin Kosnik <bkoz@redhat.com>
* acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Remove * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Remove
size-specific macros. _GLIBCXX_ATOMIC_BUILTINS_1, size-specific macros. _GLIBCXX_ATOMIC_BUILTINS_1,
_GLIBCXX_ATOMIC_BUILTINS_2, _GLIBCXX_ATOMIC_BUILTINS_4, _GLIBCXX_ATOMIC_BUILTINS_2, _GLIBCXX_ATOMIC_BUILTINS_4,
_GLIBCXX_ATOMIC_BUILTINS_8. Use _GLIBCXX_ATOMIC_BUILTINS to _GLIBCXX_ATOMIC_BUILTINS_8. Use _GLIBCXX_ATOMIC_BUILTINS to
indicate use of C++11 atomic builtins. indicate use of C++11 atomic builtins.
* config.h.in: Regenerate. * config.h.in: Regenerate.
* configure: Regenerate. * configure: Regenerate.
* include/Makefile.am (bits_sup_headers): Add atomic_lockfree_defines.h. * include/Makefile.am (bits_sup_headers): Add atomic_lockfree_defines.h.
* include/Makefile.in: Regenerate. * include/Makefile.in: Regenerate.
* libsupc++/Makefile.am: Compile C++11 support with -std=gnu++0x. * libsupc++/Makefile.am: Compile C++11 support with -std=gnu++0x.
* libsupc++/Makefile.in: Regenerate. * libsupc++/Makefile.in: Regenerate.
* include/bits/atomic_base.h: Move lock-free property macros... * include/bits/atomic_base.h: Move lock-free property macros...
* libsupc++/atomic_lockfree_defines.h: ...here. * libsupc++/atomic_lockfree_defines.h: ...here.
* include/std/future: Use C++11 macros. * include/std/future: Use C++11 macros.
* libsupc++/eh_ptr.cc: Same. * libsupc++/eh_ptr.cc: Same.
* libsupc++/eh_throw.cc: Same. * libsupc++/eh_throw.cc: Same.
* libsupc++/exception: Same. * libsupc++/exception: Same.
* libsupc++/exception_ptr.h: Same. * libsupc++/exception_ptr.h: Same.
* libsupc++/guard.cc: Same. * libsupc++/guard.cc: Same.
* libsupc++/nested_exception.cc: Same. * libsupc++/nested_exception.cc: Same.
* libsupc++/nested_exception.h: Same. * libsupc++/nested_exception.h: Same.
* src/future.cc: Same. * src/future.cc: Same.
* include/ext/atomicity.h: Use _GLIBCXX_ATOMIC_BUILTINS. * include/ext/atomicity.h: Use _GLIBCXX_ATOMIC_BUILTINS.
* doc/doxygen/user.cfg.in * doc/doxygen/user.cfg.in: Adjust.
* doc/xml/manual/concurrency_extensions.xml * doc/xml/manual/concurrency_extensions.xml: Add note.
* testsuite/18_support/exception_ptr/lifespan.cc * testsuite/18_support/exception_ptr/lifespan.cc: Tweak.
* testsuite/lib/libstdc++.exp * testsuite/lib/libstdc++.exp: Same.
2011-11-29 François Dumont <fdumont@gcc.gnu.org> 2011-11-29 François Dumont <fdumont@gcc.gnu.org>
......
...@@ -746,6 +746,7 @@ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \ ...@@ -746,6 +746,7 @@ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \
include/tr1/ctime \ include/tr1/ctime \
include/tr1/cwchar \ include/tr1/cwchar \
include/tr1/cwctype \ include/tr1/cwctype \
include/tr2/ \
include/tr2/bool_set \ include/tr2/bool_set \
include/tr2/dynamic_bitset \ include/tr2/dynamic_bitset \
include/tr2/ratio \ include/tr2/ratio \
...@@ -1647,9 +1648,10 @@ PREDEFINED = __cplusplus \ ...@@ -1647,9 +1648,10 @@ PREDEFINED = __cplusplus \
_GLIBCXX_USE_C99_STDINT_TR1 \ _GLIBCXX_USE_C99_STDINT_TR1 \
_GLIBCXX_USE_SCHED_YIELD \ _GLIBCXX_USE_SCHED_YIELD \
_GLIBCXX_USE_NANOSLEEP \ _GLIBCXX_USE_NANOSLEEP \
PB_DS_DATA_TRUE_INDICATOR \
__EXCEPTIONS \ __EXCEPTIONS \
__GXX_RTTI \ __GXX_RTTI \
ATOMIC_INT_LOCK_FREE \
PB_DS_DATA_TRUE_INDICATOR \
__glibcxx_function_requires=// \ __glibcxx_function_requires=// \
__glibcxx_class_requires=// \ __glibcxx_class_requires=// \
__glibcxx_class_requires2=// \ __glibcxx_class_requires2=// \
......
...@@ -571,39 +571,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -571,39 +571,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
/** /**
* @brief Test for the presence of a facet.
*
* has_facet tests the locale argument for the presence of the facet type
* provided as the template parameter. Facets derived from the facet
* parameter will also return true.
*
* @tparam _Facet The facet type to test the presence of.
* @param __loc The locale to test.
* @return true if __loc contains a facet of type _Facet, else false.
*/
template<typename _Facet>
bool
has_facet(const locale& __loc) throw();
/**
* @brief Return a facet.
*
* use_facet looks for and returns a reference to a facet of type Facet
* where Facet is the template parameter. If has_facet(locale) is true,
* there is a suitable facet to return. It throws std::bad_cast if the
* locale doesn't contain a facet of type Facet.
*
* @tparam _Facet The facet type to access.
* @param __loc The locale to use.
* @return Reference to facet of type Facet.
* @throw std::bad_cast if __loc doesn't contain a facet of type _Facet.
*/
template<typename _Facet>
const _Facet&
use_facet(const locale& __loc);
/**
* @brief Facet for localized string comparison. * @brief Facet for localized string comparison.
* *
* This facet encapsulates the code to compare strings in a localized * This facet encapsulates the code to compare strings in a localized
......
...@@ -87,7 +87,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -87,7 +87,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__s2.data(), __s2.data() + __s2.length()) < 0); __s2.data(), __s2.data() + __s2.length()) < 0);
} }
/**
* @brief Test for the presence of a facet.
*
* has_facet tests the locale argument for the presence of the facet type
* provided as the template parameter. Facets derived from the facet
* parameter will also return true.
*
* @tparam _Facet The facet type to test the presence of.
* @param __loc The locale to test.
* @return true if @p __loc contains a facet of type _Facet, else false.
*/
template<typename _Facet> template<typename _Facet>
bool bool
has_facet(const locale& __loc) throw() has_facet(const locale& __loc) throw()
...@@ -102,6 +112,19 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -102,6 +112,19 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#endif #endif
} }
/**
* @brief Return a facet.
*
* use_facet looks for and returns a reference to a facet of type Facet
* where Facet is the template parameter. If has_facet(locale) is true,
* there is a suitable facet to return. It throws std::bad_cast if the
* locale doesn't contain a facet of type Facet.
*
* @tparam _Facet The facet type to access.
* @param __loc The locale to use.
* @return Reference to facet of type Facet.
* @throw std::bad_cast if @p __loc doesn't contain a facet of type _Facet.
*/
template<typename _Facet> template<typename _Facet>
const _Facet& const _Facet&
use_facet(const locale& __loc) use_facet(const locale& __loc)
......
...@@ -100,6 +100,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -100,6 +100,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
constexpr shared_ptr() noexcept constexpr shared_ptr() noexcept
: __shared_ptr<_Tp>() { } : __shared_ptr<_Tp>() { }
shared_ptr(const shared_ptr&) noexcept = default;
/** /**
* @brief Construct a %shared_ptr that owns the pointer @a __p. * @brief Construct a %shared_ptr that owns the pointer @a __p.
* @param __p A pointer that is convertible to element_type*. * @param __p A pointer that is convertible to element_type*.
...@@ -211,7 +213,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -211,7 +213,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @param __r A %shared_ptr. * @param __r A %shared_ptr.
* @post get() == __r.get() && use_count() == __r.use_count() * @post get() == __r.get() && use_count() == __r.use_count()
*/ */
shared_ptr(const shared_ptr&) noexcept = default;
template<typename _Tp1, typename = typename template<typename _Tp1, typename = typename
std::enable_if<std::is_convertible<_Tp1*, _Tp*>::value>::type> std::enable_if<std::is_convertible<_Tp1*, _Tp*>::value>::type>
shared_ptr(const shared_ptr<_Tp1>& __r) noexcept shared_ptr(const shared_ptr<_Tp1>& __r) noexcept
...@@ -266,6 +267,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -266,6 +267,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
: __shared_ptr<_Tp>(__p) { } : __shared_ptr<_Tp>(__p) { }
shared_ptr& operator=(const shared_ptr&) noexcept = default; shared_ptr& operator=(const shared_ptr&) noexcept = default;
template<typename _Tp1> template<typename _Tp1>
shared_ptr& shared_ptr&
operator=(const shared_ptr<_Tp1>& __r) noexcept operator=(const shared_ptr<_Tp1>& __r) noexcept
......
...@@ -1664,9 +1664,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -1664,9 +1664,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @return Nothing. * @return Nothing.
* *
* Rotates the elements of the range @p [__first,__last) by * Rotates the elements of the range @p [__first,__last) by
* @p(__middle - __first) positions so that the element at @p __middle * @p (__middle - __first) positions so that the element at @p __middle
* is moved to @p __first, the element at @p __middle+1 is moved to * is moved to @p __first, the element at @p __middle+1 is moved to
* @ __first+1 and so on for each element in the range * @p __first+1 and so on for each element in the range
* @p [__first,__last). * @p [__first,__last).
* *
* This effectively swaps the ranges @p [__first,__middle) and * This effectively swaps the ranges @p [__first,__middle) and
...@@ -1705,7 +1705,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -1705,7 +1705,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* range beginning at @result, rotating the copied elements by * range beginning at @result, rotating the copied elements by
* @p (__middle-__first) positions so that the element at @p __middle * @p (__middle-__first) positions so that the element at @p __middle
* is moved to @p __result, the element at @p __middle+1 is moved * is moved to @p __result, the element at @p __middle+1 is moved
* to @__result+1 and so on for each element in the range @p * to @p __result+1 and so on for each element in the range @p
* [__first,__last). * [__first,__last).
* *
* Performs * Performs
...@@ -1947,9 +1947,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -1947,9 +1947,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* to the range beginning at @p __result_first, where the number of * to the range beginning at @p __result_first, where the number of
* elements to be copied, @p N, is the smaller of @p (__last-__first) and * elements to be copied, @p N, is the smaller of @p (__last-__first) and
* @p (__result_last-__result_first). * @p (__result_last-__result_first).
* After the sort if @p i and @j are iterators in the range * After the sort if @e i and @e j are iterators in the range
* @p [__result_first,__result_first+N) such that @i precedes @j then * @p [__result_first,__result_first+N) such that i precedes j then
* @p *j<*i is false. * *j<*i is false.
* The value returned is @p __result_first+N. * The value returned is @p __result_first+N.
*/ */
template<typename _InputIterator, typename _RandomAccessIterator> template<typename _InputIterator, typename _RandomAccessIterator>
...@@ -2013,8 +2013,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -2013,8 +2013,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* to the range beginning at @p result_first, where the number of * to the range beginning at @p result_first, where the number of
* elements to be copied, @p N, is the smaller of @p (__last-__first) and * elements to be copied, @p N, is the smaller of @p (__last-__first) and
* @p (__result_last-__result_first). * @p (__result_last-__result_first).
* After the sort if @p i and @j are iterators in the range * After the sort if @e i and @e j are iterators in the range
* @p [__result_first,__result_first+N) such that @i precedes @j then * @p [__result_first,__result_first+N) such that i precedes j then
* @p __comp(*j,*i) is false. * @p __comp(*j,*i) is false.
* The value returned is @p __result_first+N. * The value returned is @p __result_first+N.
*/ */
...@@ -2387,7 +2387,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -2387,7 +2387,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// lower_bound moved to stl_algobase.h // lower_bound moved to stl_algobase.h
/** /**
* @brief Finds the first position in which @a val could be inserted * @brief Finds the first position in which @p __val could be inserted
* without changing the ordering. * without changing the ordering.
* @ingroup binary_search_algorithms * @ingroup binary_search_algorithms
* @param __first An iterator. * @param __first An iterator.
...@@ -2395,8 +2395,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -2395,8 +2395,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @param __val The search term. * @param __val The search term.
* @param __comp A functor to use for comparisons. * @param __comp A functor to use for comparisons.
* @return An iterator pointing to the first element <em>not less * @return An iterator pointing to the first element <em>not less
* than</em> @a __val, or end() if every element is less * than</em> @p __val, or end() if every element is less
* than @a __val. * than @p __val.
* @ingroup binary_search_algorithms * @ingroup binary_search_algorithms
* *
* The comparison function should have the same effects on ordering as * The comparison function should have the same effects on ordering as
...@@ -2439,14 +2439,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -2439,14 +2439,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
} }
/** /**
* @brief Finds the last position in which @a val could be inserted * @brief Finds the last position in which @p __val could be inserted
* without changing the ordering. * without changing the ordering.
* @ingroup binary_search_algorithms * @ingroup binary_search_algorithms
* @param __first An iterator. * @param __first An iterator.
* @param __last Another iterator. * @param __last Another iterator.
* @param __val The search term. * @param __val The search term.
* @return An iterator pointing to the first element greater than @a __val, * @return An iterator pointing to the first element greater than @p __val,
* or end() if no elements are greater than @a __val. * or end() if no elements are greater than @p __val.
* @ingroup binary_search_algorithms * @ingroup binary_search_algorithms
*/ */
template<typename _ForwardIterator, typename _Tp> template<typename _ForwardIterator, typename _Tp>
...@@ -2484,15 +2484,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -2484,15 +2484,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
} }
/** /**
* @brief Finds the last position in which @a val could be inserted * @brief Finds the last position in which @p __val could be inserted
* without changing the ordering. * without changing the ordering.
* @ingroup binary_search_algorithms * @ingroup binary_search_algorithms
* @param __first An iterator. * @param __first An iterator.
* @param __last Another iterator. * @param __last Another iterator.
* @param __val The search term. * @param __val The search term.
* @param __comp A functor to use for comparisons. * @param __comp A functor to use for comparisons.
* @return An iterator pointing to the first element greater than @a __val, * @return An iterator pointing to the first element greater than @p __val,
* or end() if no elements are greater than @a __val. * or end() if no elements are greater than @p __val.
* @ingroup binary_search_algorithms * @ingroup binary_search_algorithms
* *
* The comparison function should have the same effects on ordering as * The comparison function should have the same effects on ordering as
...@@ -2535,7 +2535,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -2535,7 +2535,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
} }
/** /**
* @brief Finds the largest subrange in which @a val could be inserted * @brief Finds the largest subrange in which @p __val could be inserted
* at any place in it without changing the ordering. * at any place in it without changing the ordering.
* @ingroup binary_search_algorithms * @ingroup binary_search_algorithms
* @param __first An iterator. * @param __first An iterator.
...@@ -2597,7 +2597,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -2597,7 +2597,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
} }
/** /**
* @brief Finds the largest subrange in which @a val could be inserted * @brief Finds the largest subrange in which @p __val could be inserted
* at any place in it without changing the ordering. * at any place in it without changing the ordering.
* @param __first An iterator. * @param __first An iterator.
* @param __last Another iterator. * @param __last Another iterator.
...@@ -2668,10 +2668,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -2668,10 +2668,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @param __first An iterator. * @param __first An iterator.
* @param __last Another iterator. * @param __last Another iterator.
* @param __val The search term. * @param __val The search term.
* @return True if @a __val (or its equivalent) is in [@a * @return True if @p __val (or its equivalent) is in [@p
* __first,@a __last ]. * __first,@p __last ].
* *
* Note that this does not actually return an iterator to @a __val. For * Note that this does not actually return an iterator to @p __val. For
* that, use std::find or a container's specialized find member functions. * that, use std::find or a container's specialized find member functions.
*/ */
template<typename _ForwardIterator, typename _Tp> template<typename _ForwardIterator, typename _Tp>
...@@ -2699,9 +2699,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -2699,9 +2699,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @param __last Another iterator. * @param __last Another iterator.
* @param __val The search term. * @param __val The search term.
* @param __comp A functor to use for comparisons. * @param __comp A functor to use for comparisons.
* @return True if @a val (or its equivalent) is in [@a first,@a last ]. * @return True if @p __val (or its equivalent) is in @p [__first,__last].
* *
* Note that this does not actually return an iterator to @a val. For * Note that this does not actually return an iterator to @p __val. For
* that, use std::find or a container's specialized find member functions. * that, use std::find or a container's specialized find member functions.
* *
* The comparison function should have the same effects on ordering as * The comparison function should have the same effects on ordering as
...@@ -3523,7 +3523,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -3523,7 +3523,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* each element in [__first2,__last2) within [__first1,__last1). * each element in [__first2,__last2) within [__first1,__last1).
* The iterators over each range only move forward, so this is a * The iterators over each range only move forward, so this is a
* linear algorithm. If an element in [__first2,__last2) is not * linear algorithm. If an element in [__first2,__last2) is not
* found before the search iterator reaches @a __last2, false is * found before the search iterator reaches @p __last2, false is
* returned. * returned.
*/ */
template<typename _InputIterator1, typename _InputIterator2> template<typename _InputIterator1, typename _InputIterator2>
...@@ -3574,7 +3574,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -3574,7 +3574,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* using comp to decide. The iterators over each range only move * using comp to decide. The iterators over each range only move
* forward, so this is a linear algorithm. If an element in * forward, so this is a linear algorithm. If an element in
* [__first2,__last2) is not found before the search iterator * [__first2,__last2) is not found before the search iterator
* reaches @a __last2, false is returned. * reaches @p __last2, false is returned.
*/ */
template<typename _InputIterator1, typename _InputIterator2, template<typename _InputIterator1, typename _InputIterator2,
typename _Compare> typename _Compare>
...@@ -3620,13 +3620,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -3620,13 +3620,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// max_element // max_element
/** /**
* @brief Permute range into the next @a dictionary ordering. * @brief Permute range into the next @e dictionary ordering.
* @ingroup sorting_algorithms * @ingroup sorting_algorithms
* @param __first Start of range. * @param __first Start of range.
* @param __last End of range. * @param __last End of range.
* @return False if wrapped to first permutation, true otherwise. * @return False if wrapped to first permutation, true otherwise.
* *
* Treats all permutations of the range as a set of @a dictionary sorted * Treats all permutations of the range as a set of @e dictionary sorted
* sequences. Permutes the current sequence into the next one of this set. * sequences. Permutes the current sequence into the next one of this set.
* Returns true if there are more sequences to generate. If the sequence * Returns true if there are more sequences to generate. If the sequence
* is the largest of the set, the smallest is generated and false returned. * is the largest of the set, the smallest is generated and false returned.
...@@ -3674,7 +3674,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -3674,7 +3674,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
} }
/** /**
* @brief Permute range into the next @a dictionary ordering using * @brief Permute range into the next @e dictionary ordering using
* comparison functor. * comparison functor.
* @ingroup sorting_algorithms * @ingroup sorting_algorithms
* @param __first Start of range. * @param __first Start of range.
...@@ -3683,7 +3683,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -3683,7 +3683,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @return False if wrapped to first permutation, true otherwise. * @return False if wrapped to first permutation, true otherwise.
* *
* Treats all permutations of the range [__first,__last) as a set of * Treats all permutations of the range [__first,__last) as a set of
* @a dictionary sorted sequences ordered by @a comp. Permutes the current * @e dictionary sorted sequences ordered by @p __comp. Permutes the current
* sequence into the next one of this set. Returns true if there are more * sequence into the next one of this set. Returns true if there are more
* sequences to generate. If the sequence is the largest of the set, the * sequences to generate. If the sequence is the largest of the set, the
* smallest is generated and false returned. * smallest is generated and false returned.
...@@ -3732,13 +3732,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -3732,13 +3732,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
} }
/** /**
* @brief Permute range into the previous @a dictionary ordering. * @brief Permute range into the previous @e dictionary ordering.
* @ingroup sorting_algorithms * @ingroup sorting_algorithms
* @param __first Start of range. * @param __first Start of range.
* @param __last End of range. * @param __last End of range.
* @return False if wrapped to last permutation, true otherwise. * @return False if wrapped to last permutation, true otherwise.
* *
* Treats all permutations of the range as a set of @a dictionary sorted * Treats all permutations of the range as a set of @e dictionary sorted
* sequences. Permutes the current sequence into the previous one of this * sequences. Permutes the current sequence into the previous one of this
* set. Returns true if there are more sequences to generate. If the * set. Returns true if there are more sequences to generate. If the
* sequence is the smallest of the set, the largest is generated and false * sequence is the smallest of the set, the largest is generated and false
...@@ -3787,7 +3787,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -3787,7 +3787,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
} }
/** /**
* @brief Permute range into the previous @a dictionary ordering using * @brief Permute range into the previous @e dictionary ordering using
* comparison functor. * comparison functor.
* @ingroup sorting_algorithms * @ingroup sorting_algorithms
* @param __first Start of range. * @param __first Start of range.
...@@ -3796,7 +3796,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -3796,7 +3796,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @return False if wrapped to last permutation, true otherwise. * @return False if wrapped to last permutation, true otherwise.
* *
* Treats all permutations of the range [__first,__last) as a set of * Treats all permutations of the range [__first,__last) as a set of
* @a dictionary sorted sequences ordered by @a comp. Permutes the current * @e dictionary sorted sequences ordered by @p __comp. Permutes the current
* sequence into the previous one of this set. Returns true if there are * sequence into the previous one of this set. Returns true if there are
* more sequences to generate. If the sequence is the smallest of the set, * more sequences to generate. If the sequence is the smallest of the set,
* the largest is generated and false returned. * the largest is generated and false returned.
...@@ -4032,7 +4032,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -4032,7 +4032,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @ingroup sorting_algorithms * @ingroup sorting_algorithms
* @param __a A thing of arbitrary type. * @param __a A thing of arbitrary type.
* @param __b Another thing of arbitrary type. * @param __b Another thing of arbitrary type.
* @param __comp A @link comparison_functor comparison functor @endlink. * @param __comp A @link comparison_functors comparison functor @endlink.
* @return A pair(__b, __a) if __b is smaller than __a, pair(__a, * @return A pair(__b, __a) if __b is smaller than __a, pair(__a,
* __b) otherwise. * __b) otherwise.
*/ */
...@@ -5258,9 +5258,9 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -5258,9 +5258,9 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* @p [first,last) and moves them to the range @p [__first,__middle). The * @p [first,last) and moves them to the range @p [__first,__middle). The
* order of the remaining elements in the range @p [__middle,__last) is * order of the remaining elements in the range @p [__middle,__last) is
* undefined. * undefined.
* After the sort if @p i and @j are iterators in the range * After the sort if @e i and @e j are iterators in the range
* @p [__first,__middle) such that @i precedes @j and @k is an iterator in * @p [__first,__middle) such that i precedes j and @e k is an iterator in
* the range @p [__middle,__last) then @p *j<*i and @p *k<*i are both false. * the range @p [__middle,__last) then *j<*i and *k<*i are both false.
*/ */
template<typename _RandomAccessIterator> template<typename _RandomAccessIterator>
inline void inline void
...@@ -5296,8 +5296,8 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -5296,8 +5296,8 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* @p [__first,__last) and moves them to the range @p [__first,__middle). The * @p [__first,__last) and moves them to the range @p [__first,__middle). The
* order of the remaining elements in the range @p [__middle,__last) is * order of the remaining elements in the range @p [__middle,__last) is
* undefined. * undefined.
* After the sort if @p i and @j are iterators in the range * After the sort if @e i and @e j are iterators in the range
* @p [__first,__middle) such that @i precedes @j and @k is an iterator in * @p [__first,__middle) such that i precedes j and @e k is an iterator in
* the range @p [__middle,__last) then @p *__comp(j,*i) and @p __comp(*k,*i) * the range @p [__middle,__last) then @p *__comp(j,*i) and @p __comp(*k,*i)
* are both false. * are both false.
*/ */
...@@ -5333,11 +5333,10 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -5333,11 +5333,10 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* *
* Rearranges the elements in the range @p [__first,__last) so that @p *__nth * Rearranges the elements in the range @p [__first,__last) so that @p *__nth
* is the same element that would have been in that position had the * is the same element that would have been in that position had the
* whole sequence been sorted.
* whole sequence been sorted. The elements either side of @p *__nth are * whole sequence been sorted. The elements either side of @p *__nth are
* not completely sorted, but for any iterator @i in the range * not completely sorted, but for any iterator @e i in the range
* @p [__first,__nth) and any iterator @j in the range @p [__nth,__last) it * @p [__first,__nth) and any iterator @e j in the range @p [__nth,__last) it
* holds that @p *j<*i is false. * holds that *j < *i is false.
*/ */
template<typename _RandomAccessIterator> template<typename _RandomAccessIterator>
inline void inline void
...@@ -5374,8 +5373,8 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -5374,8 +5373,8 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* Rearranges the elements in the range @p [__first,__last) so that @p *__nth * Rearranges the elements in the range @p [__first,__last) so that @p *__nth
* is the same element that would have been in that position had the * is the same element that would have been in that position had the
* whole sequence been sorted. The elements either side of @p *__nth are * whole sequence been sorted. The elements either side of @p *__nth are
* not completely sorted, but for any iterator @i in the range * not completely sorted, but for any iterator @e i in the range
* @p [__first,__nth) and any iterator @j in the range @p [__nth,__last) it * @p [__first,__nth) and any iterator @e j in the range @p [__nth,__last) it
* holds that @p __comp(*j,*i) is false. * holds that @p __comp(*j,*i) is false.
*/ */
template<typename _RandomAccessIterator, typename _Compare> template<typename _RandomAccessIterator, typename _Compare>
...@@ -5410,8 +5409,8 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -5410,8 +5409,8 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* @return Nothing. * @return Nothing.
* *
* Sorts the elements in the range @p [__first,__last) in ascending order, * Sorts the elements in the range @p [__first,__last) in ascending order,
* such that @p *(i+1)<*i is false for each iterator @p i in the range * such that for each iterator @e i in the range @p [__first,__last-1),
* @p [__first,__last-1). * *(i+1)<*i is false.
* *
* The relative ordering of equivalent elements is not preserved, use * The relative ordering of equivalent elements is not preserved, use
* @p stable_sort() if this is needed. * @p stable_sort() if this is needed.
...@@ -5446,7 +5445,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -5446,7 +5445,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* @return Nothing. * @return Nothing.
* *
* Sorts the elements in the range @p [__first,__last) in ascending order, * Sorts the elements in the range @p [__first,__last) in ascending order,
* such that @p __comp(*(i+1),*i) is false for every iterator @p i in the * such that @p __comp(*(i+1),*i) is false for every iterator @e i in the
* range @p [__first,__last-1). * range @p [__first,__last-1).
* *
* The relative ordering of equivalent elements is not preserved, use * The relative ordering of equivalent elements is not preserved, use
...@@ -5484,10 +5483,10 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -5484,10 +5483,10 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* @param __last2 Another iterator. * @param __last2 Another iterator.
* @param __result An iterator pointing to the end of the merged range. * @param __result An iterator pointing to the end of the merged range.
* @return An iterator pointing to the first element <em>not less * @return An iterator pointing to the first element <em>not less
* than</em> @a val. * than</em> @e val.
* *
* Merges the ranges [__first1,__last1) and [__first2,__last2) into * Merges the ranges @p [__first1,__last1) and @p [__first2,__last2) into
* the sorted range [__result, __result + (__last1-__first1) + * the sorted range @p [__result, __result + (__last1-__first1) +
* (__last2-__first2)). Both input ranges must be sorted, and the * (__last2-__first2)). Both input ranges must be sorted, and the
* output range must not overlap with either of the input ranges. * output range must not overlap with either of the input ranges.
* The sort is @e stable, that is, for equivalent elements in the * The sort is @e stable, that is, for equivalent elements in the
...@@ -5545,10 +5544,10 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -5545,10 +5544,10 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* @param __result An iterator pointing to the end of the merged range. * @param __result An iterator pointing to the end of the merged range.
* @param __comp A functor to use for comparisons. * @param __comp A functor to use for comparisons.
* @return An iterator pointing to the first element "not less * @return An iterator pointing to the first element "not less
* than" @a val. * than" @e val.
* *
* Merges the ranges [__first1,__last1) and [__first2,__last2) into * Merges the ranges @p [__first1,__last1) and @p [__first2,__last2) into
* the sorted range [__result, __result + (__last1-__first1) + * the sorted range @p [__result, __result + (__last1-__first1) +
* (__last2-__first2)). Both input ranges must be sorted, and the * (__last2-__first2)). Both input ranges must be sorted, and the
* output range must not overlap with either of the input ranges. * output range must not overlap with either of the input ranges.
* The sort is @e stable, that is, for equivalent elements in the * The sort is @e stable, that is, for equivalent elements in the
...@@ -5610,8 +5609,8 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -5610,8 +5609,8 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* @return Nothing. * @return Nothing.
* *
* Sorts the elements in the range @p [__first,__last) in ascending order, * Sorts the elements in the range @p [__first,__last) in ascending order,
* such that @p *(i+1)<*i is false for each iterator @p i in the range * such that for each iterator @p i in the range @p [__first,__last-1),
* @p [__first,__last-1). * @p *(i+1)<*i is false.
* *
* The relative ordering of equivalent elements is preserved, so any two * The relative ordering of equivalent elements is preserved, so any two
* elements @p x and @p y in the range @p [__first,__last) such that * elements @p x and @p y in the range @p [__first,__last) such that
...@@ -5652,8 +5651,8 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -5652,8 +5651,8 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* @return Nothing. * @return Nothing.
* *
* Sorts the elements in the range @p [__first,__last) in ascending order, * Sorts the elements in the range @p [__first,__last) in ascending order,
* such that @p __comp(*(i+1),*i) is false for each iterator @p i in the * such that for each iterator @p i in the range @p [__first,__last-1),
* range @p [__first,__last-1). * @p __comp(*(i+1),*i) is false.
* *
* The relative ordering of equivalent elements is preserved, so any two * The relative ordering of equivalent elements is preserved, so any two
* elements @p x and @p y in the range @p [__first,__last) such that * elements @p x and @p y in the range @p [__first,__last) such that
...@@ -5768,8 +5767,8 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -5768,8 +5767,8 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* This operation iterates over both ranges, copying elements present in * This operation iterates over both ranges, copying elements present in
* each range in order to the output range. Iterators increment for each * each range in order to the output range. Iterators increment for each
* range. When the current element of one range is less than the other * range. When the current element of one range is less than the other
* according to @a __comp, that element is copied and the iterator advanced. * according to @p __comp, that element is copied and the iterator advanced.
* If an equivalent element according to @a __comp is contained in both * If an equivalent element according to @p __comp is contained in both
* ranges, the element from the first range is copied and both ranges * ranges, the element from the first range is copied and both ranges
* advance. The output range may not overlap either input range. * advance. The output range may not overlap either input range.
*/ */
...@@ -5892,8 +5891,8 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -5892,8 +5891,8 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* This operation iterates over both ranges, copying elements present in * This operation iterates over both ranges, copying elements present in
* both ranges in order to the output range. Iterators increment for each * both ranges in order to the output range. Iterators increment for each
* range. When the current element of one range is less than the other * range. When the current element of one range is less than the other
* according to @a __comp, that iterator advances. If an element is * according to @p __comp, that iterator advances. If an element is
* contained in both ranges according to @a __comp, the element from the * contained in both ranges according to @p __comp, the element from the
* first range is copied and both ranges advance. The output range may not * first range is copied and both ranges advance. The output range may not
* overlap either input range. * overlap either input range.
*/ */
...@@ -6009,10 +6008,10 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -6009,10 +6008,10 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* This operation iterates over both ranges, copying elements present in * This operation iterates over both ranges, copying elements present in
* the first range but not the second in order to the output range. * the first range but not the second in order to the output range.
* Iterators increment for each range. When the current element of the * Iterators increment for each range. When the current element of the
* first range is less than the second according to @a comp, that element * first range is less than the second according to @p __comp, that element
* is copied and the iterator advances. If the current element of the * is copied and the iterator advances. If the current element of the
* second range is less, no element is copied and the iterator advances. * second range is less, no element is copied and the iterator advances.
* If an element is contained in both ranges according to @a comp, no * If an element is contained in both ranges according to @p __comp, no
* elements are copied and both ranges advance. The output range may not * elements are copied and both ranges advance. The output range may not
* overlap either input range. * overlap either input range.
*/ */
...@@ -6135,9 +6134,9 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -6135,9 +6134,9 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* This operation iterates over both ranges, copying elements present in * This operation iterates over both ranges, copying elements present in
* one range but not the other in order to the output range. Iterators * one range but not the other in order to the output range. Iterators
* increment for each range. When the current element of one range is less * increment for each range. When the current element of one range is less
* than the other according to @a comp, that element is copied and the * than the other according to @p comp, that element is copied and the
* iterator advances. If an element is contained in both ranges according * iterator advances. If an element is contained in both ranges according
* to @a comp, no elements are copied and both ranges advance. The output * to @p __comp, no elements are copied and both ranges advance. The output
* range may not overlap either input range. * range may not overlap either input range.
*/ */
template<typename _InputIterator1, typename _InputIterator2, template<typename _InputIterator1, typename _InputIterator2,
...@@ -6223,7 +6222,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -6223,7 +6222,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* @param __last End of range. * @param __last End of range.
* @param __comp Comparison functor. * @param __comp Comparison functor.
* @return Iterator referencing the first instance of the smallest value * @return Iterator referencing the first instance of the smallest value
* according to comp. * according to __comp.
*/ */
template<typename _ForwardIterator, typename _Compare> template<typename _ForwardIterator, typename _Compare>
_ForwardIterator _ForwardIterator
......
...@@ -1441,9 +1441,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER ...@@ -1441,9 +1441,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
/** /**
* @brief Merge sorted lists according to comparison function. * @brief Merge sorted lists according to comparison function.
* @param __x Sorted list to merge.
* @tparam _StrictWeakOrdering Comparison function defining * @tparam _StrictWeakOrdering Comparison function defining
* sort order. * sort order.
* @param __x Sorted list to merge.
* @param __comp Comparison functor.
* *
* Assumes that both @a __x and this list are sorted according to * Assumes that both @a __x and this list are sorted according to
* StrictWeakOrdering. Merges elements of @a __x into this list * StrictWeakOrdering. Merges elements of @a __x into this list
......
...@@ -133,7 +133,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -133,7 +133,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* @brief Accumulate values in a range with operation. * @brief Accumulate values in a range with operation.
* *
* Accumulates the values in the range [first,last) using the function * Accumulates the values in the range [first,last) using the function
* object @a binary_op. The initial value is @a init. The values are * object @p __binary_op. The initial value is @p __init. The values are
* processed in order. * processed in order.
* *
* @param __first Start of range. * @param __first Start of range.
...@@ -159,7 +159,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -159,7 +159,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
/** /**
* @brief Compute inner product of two ranges. * @brief Compute inner product of two ranges.
* *
* Starting with an initial value of @a init, multiplies successive * Starting with an initial value of @p __init, multiplies successive
* elements from the two ranges and adds each product into the accumulated * elements from the two ranges and adds each product into the accumulated
* value using operator+(). The values in the ranges are processed in * value using operator+(). The values in the ranges are processed in
* order. * order.
...@@ -188,9 +188,9 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -188,9 +188,9 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
/** /**
* @brief Compute inner product of two ranges. * @brief Compute inner product of two ranges.
* *
* Starting with an initial value of @a init, applies @a binary_op2 to * Starting with an initial value of @p __init, applies @p __binary_op2 to
* successive elements from the two ranges and accumulates each result into * successive elements from the two ranges and accumulates each result into
* the accumulated value using @a binary_op1. The values in the ranges are * the accumulated value using @p __binary_op1. The values in the ranges are
* processed in order. * processed in order.
* *
* @param __first1 Start of range 1. * @param __first1 Start of range 1.
...@@ -224,14 +224,14 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -224,14 +224,14 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* *
* Accumulates the values in the range [first,last) using operator+(). * Accumulates the values in the range [first,last) using operator+().
* As each successive input value is added into the total, that partial sum * As each successive input value is added into the total, that partial sum
* is written to @a result. Therefore, the first value in result is the * is written to @p __result. Therefore, the first value in result is the
* first value of the input, the second value in result is the sum of the * first value of the input, the second value in result is the sum of the
* first and second input values, and so on. * first and second input values, and so on.
* *
* @param __first Start of input range. * @param __first Start of input range.
* @param __last End of input range. * @param __last End of input range.
* @param __result Output to write sums to. * @param __result Output sum.
* @return Iterator pointing just beyond the values written to result. * @return Iterator pointing just beyond the values written to __result.
*/ */
template<typename _InputIterator, typename _OutputIterator> template<typename _InputIterator, typename _OutputIterator>
_OutputIterator _OutputIterator
...@@ -263,14 +263,14 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -263,14 +263,14 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* *
* Accumulates the values in the range [first,last) using operator+(). * Accumulates the values in the range [first,last) using operator+().
* As each successive input value is added into the total, that partial sum * As each successive input value is added into the total, that partial sum
* is written to @a result. Therefore, the first value in result is the * is written to @p __result. Therefore, the first value in result is the
* first value of the input, the second value in result is the sum of the * first value of the input, the second value in result is the sum of the
* first and second input values, and so on. * first and second input values, and so on.
* *
* @param __first Start of input range. * @param __first Start of input range.
* @param __last End of input range. * @param __last End of input range.
* @param __result Output to write sums to. * @param __result Output sum.
* @return Iterator pointing just beyond the values written to result. * @return Iterator pointing just beyond the values written to __result.
*/ */
template<typename _InputIterator, typename _OutputIterator, template<typename _InputIterator, typename _OutputIterator,
typename _BinaryOperation> typename _BinaryOperation>
...@@ -302,11 +302,11 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -302,11 +302,11 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* @brief Return differences between adjacent values. * @brief Return differences between adjacent values.
* *
* Computes the difference between adjacent values in the range * Computes the difference between adjacent values in the range
* [first,last) using operator-() and writes the result to @a result. * [first,last) using operator-() and writes the result to @p __result.
* *
* @param __first Start of input range. * @param __first Start of input range.
* @param __last End of input range. * @param __last End of input range.
* @param __result Output to write sums to. * @param __result Output sums.
* @return Iterator pointing just beyond the values written to result. * @return Iterator pointing just beyond the values written to result.
* *
* _GLIBCXX_RESOLVE_LIB_DEFECTS * _GLIBCXX_RESOLVE_LIB_DEFECTS
...@@ -342,12 +342,13 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO ...@@ -342,12 +342,13 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
* @brief Return differences between adjacent values. * @brief Return differences between adjacent values.
* *
* Computes the difference between adjacent values in the range * Computes the difference between adjacent values in the range
* [__first,__last) using the function object @a __binary_op and writes the * [__first,__last) using the function object @p __binary_op and writes the
* result to @a __result. * result to @p __result.
* *
* @param __first Start of input range. * @param __first Start of input range.
* @param __last End of input range. * @param __last End of input range.
* @param __result Output to write sums to. * @param __result Output sum.
* @param __binary_op Function object.
* @return Iterator pointing just beyond the values written to result. * @return Iterator pointing just beyond the values written to result.
* *
* _GLIBCXX_RESOLVE_LIB_DEFECTS * _GLIBCXX_RESOLVE_LIB_DEFECTS
......
...@@ -79,7 +79,7 @@ namespace __gnu_debug ...@@ -79,7 +79,7 @@ namespace __gnu_debug
{ } { }
/** Initialize the iterator to reference the sequence pointed to /** Initialize the iterator to reference the sequence pointed to
* by @p__seq. @p __constant is true when we are initializing a * by @p __seq. @p __constant is true when we are initializing a
* constant iterator, and false if it is a mutable iterator. Note * constant iterator, and false if it is a mutable iterator. Note
* that @p __seq may be NULL, in which case the iterator will be * that @p __seq may be NULL, in which case the iterator will be
* singular. Otherwise, the iterator will reference @p __seq and * singular. Otherwise, the iterator will reference @p __seq and
......
...@@ -68,6 +68,7 @@ namespace __gnu_parallel ...@@ -68,6 +68,7 @@ namespace __gnu_parallel
* thread number __thread_no+1 (excluded). * thread number __thread_no+1 (excluded).
* @param __n Number of elements * @param __n Number of elements
* @param __num_threads Number of parts * @param __num_threads Number of parts
* @param __thread_no Number of threads
* @returns splitting point */ * @returns splitting point */
template<typename _DifferenceType> template<typename _DifferenceType>
_DifferenceType _DifferenceType
......
...@@ -683,7 +683,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER ...@@ -683,7 +683,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
#endif #endif
/** /**
* @brief The %bitset class represents a @e fixed-size sequence of bits. * The %bitset class represents a @e fixed-size sequence of bits.
* *
* @ingroup containers * @ingroup containers
* *
...@@ -855,7 +855,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER ...@@ -855,7 +855,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
#endif #endif
/** /**
* @brief Use a subset of a string. * Use a subset of a string.
* @param __s A string of @a 0 and @a 1 characters. * @param __s A string of @a 0 and @a 1 characters.
* @param __position Index of the first character in @a __s to use; * @param __position Index of the first character in @a __s to use;
* defaults to zero. * defaults to zero.
...@@ -878,7 +878,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER ...@@ -878,7 +878,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
} }
/** /**
* @brief Use a subset of a string. * Use a subset of a string.
* @param __s A string of @a 0 and @a 1 characters. * @param __s A string of @a 0 and @a 1 characters.
* @param __position Index of the first character in @a __s to use. * @param __position Index of the first character in @a __s to use.
* @param __n The number of characters to copy. * @param __n The number of characters to copy.
...@@ -914,7 +914,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER ...@@ -914,7 +914,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
#ifdef __GXX_EXPERIMENTAL_CXX0X__ #ifdef __GXX_EXPERIMENTAL_CXX0X__
/** /**
* @brief Construct from a character %array. * Construct from a character %array.
* @param __str An %array of characters @a zero and @a one. * @param __str An %array of characters @a zero and @a one.
* @param __n The number of characters to use. * @param __n The number of characters to use.
* @param __zero The character corresponding to the value 0. * @param __zero The character corresponding to the value 0.
...@@ -944,7 +944,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER ...@@ -944,7 +944,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
// 23.3.5.2 bitset operations: // 23.3.5.2 bitset operations:
//@{ //@{
/** /**
* @brief Operations on bitsets. * Operations on bitsets.
* @param __rhs A same-sized bitset. * @param __rhs A same-sized bitset.
* *
* These should be self-explanatory. * These should be self-explanatory.
...@@ -973,7 +973,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER ...@@ -973,7 +973,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
//@{ //@{
/** /**
* @brief Operations on bitsets. * Operations on bitsets.
* @param __position The number of places to shift. * @param __position The number of places to shift.
* *
* These should be self-explanatory. * These should be self-explanatory.
......
...@@ -1035,8 +1035,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -1035,8 +1035,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
: std::pow(complex<_Tp>(__x), __y); : std::pow(complex<_Tp>(__x), __y);
} }
// 26.2.3 complex specializations /// 26.2.3 complex specializations
// complex<float> specialization /// complex<float> specialization
template<> template<>
struct complex<float> struct complex<float>
{ {
...@@ -1182,8 +1182,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -1182,8 +1182,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_ComplexT _M_value; _ComplexT _M_value;
}; };
// 26.2.3 complex specializations /// 26.2.3 complex specializations
// complex<double> specialization /// complex<double> specialization
template<> template<>
struct complex<double> struct complex<double>
{ {
...@@ -1330,8 +1330,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -1330,8 +1330,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_ComplexT _M_value; _ComplexT _M_value;
}; };
// 26.2.3 complex specializations /// 26.2.3 complex specializations
// complex<long double> specialization /// complex<long double> specialization
template<> template<>
struct complex<long double> struct complex<long double>
{ {
......
...@@ -620,7 +620,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -620,7 +620,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @param __mode Open file in specified mode (see std::ios_base). * @param __mode Open file in specified mode (see std::ios_base).
* *
* @c ios_base::out|ios_base::trunc is automatically included in * @c ios_base::out|ios_base::trunc is automatically included in
* @a __mode. * @p __mode.
* *
* Tip: When using std::string to hold the filename, you must use * Tip: When using std::string to hold the filename, you must use
* .c_str() before passing it to this constructor. * .c_str() before passing it to this constructor.
......
...@@ -44,9 +44,8 @@ namespace std _GLIBCXX_VISIBILITY(default) ...@@ -44,9 +44,8 @@ namespace std _GLIBCXX_VISIBILITY(default)
{ {
_GLIBCXX_BEGIN_NAMESPACE_VERSION _GLIBCXX_BEGIN_NAMESPACE_VERSION
// [27.6.1.1] Template class basic_istream
/** /**
* @brief Controlling input. * @brief Template class basic_istream.
* @ingroup io * @ingroup io
* *
* This is the base class for all input streams. It provides text * This is the base class for all input streams. It provides text
...@@ -58,19 +57,19 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -58,19 +57,19 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ {
public: public:
// Types (inherited from basic_ios (27.4.4)): // Types (inherited from basic_ios (27.4.4)):
typedef _CharT char_type; typedef _CharT char_type;
typedef typename _Traits::int_type int_type; typedef typename _Traits::int_type int_type;
typedef typename _Traits::pos_type pos_type; typedef typename _Traits::pos_type pos_type;
typedef typename _Traits::off_type off_type; typedef typename _Traits::off_type off_type;
typedef _Traits traits_type; typedef _Traits traits_type;
// Non-standard Types: // Non-standard Types:
typedef basic_streambuf<_CharT, _Traits> __streambuf_type; typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
typedef basic_ios<_CharT, _Traits> __ios_type; typedef basic_ios<_CharT, _Traits> __ios_type;
typedef basic_istream<_CharT, _Traits> __istream_type; typedef basic_istream<_CharT, _Traits> __istream_type;
typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> >
__num_get_type; __num_get_type;
typedef ctype<_CharT> __ctype_type; typedef ctype<_CharT> __ctype_type;
protected: protected:
// Data Members: // Data Members:
...@@ -81,7 +80,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -81,7 +80,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
streamsize _M_gcount; streamsize _M_gcount;
public: public:
// [27.6.1.1.1] constructor/destructor
/** /**
* @brief Base constructor. * @brief Base constructor.
* *
...@@ -99,23 +97,21 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -99,23 +97,21 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* *
* This does very little apart from providing a virtual base dtor. * This does very little apart from providing a virtual base dtor.
*/ */
virtual virtual
~basic_istream() ~basic_istream()
{ _M_gcount = streamsize(0); } { _M_gcount = streamsize(0); }
// [27.6.1.1.2] prefix/suffix /// Safe prefix/suffix operations.
class sentry; class sentry;
friend class sentry; friend class sentry;
// [27.6.1.2] formatted input
// [27.6.1.2.3] basic_istream::operator>>
//@{ //@{
/** /**
* @brief Interface for manipulators. * @brief Interface for manipulators.
* *
* Manipulators such as @c std::ws and @c std::dec use these * Manipulators such as @c std::ws and @c std::dec use these
* functions in constructs like * functions in constructs like
* <code>std::cin >> std::ws</code>. * <code>std::cin >> std::ws</code>.
* For more information, see the iomanip header. * For more information, see the iomanip header.
*/ */
__istream_type& __istream_type&
...@@ -124,7 +120,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -124,7 +120,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__istream_type& __istream_type&
operator>>(__ios_type& (*__pf)(__ios_type&)) operator>>(__ios_type& (*__pf)(__ios_type&))
{ {
__pf(*this); __pf(*this);
return *this; return *this;
} }
...@@ -136,10 +132,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -136,10 +132,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return *this; return *this;
} }
//@} //@}
// [27.6.1.2.2] arithmetic extractors //@{
/** /**
* @name Arithmetic Extractors * @name Extractors
* *
* All the @c operator>> functions (aka <em>formatted input * All the @c operator>> functions (aka <em>formatted input
* functions</em>) have some common behavior. Each starts by * functions</em>) have some common behavior. Each starts by
...@@ -156,64 +152,84 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -156,64 +152,84 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* ios_base::failure to be thrown. The original exception will then * ios_base::failure to be thrown. The original exception will then
* be rethrown. * be rethrown.
*/ */
//@{ //@{
/** /**
* @brief Basic arithmetic extractors * @brief Integer arithmetic extractors
* @param __n, __f, __p: A variable of builtin type. * @param __n A variable of builtin integral type.
* @return @c *this if successful * @return @c *this if successful
* *
* These functions use the stream's current locale (specifically, the * These functions use the stream's current locale (specifically, the
* @c num_get facet) to parse the input data. * @c num_get facet) to parse the input data.
*/ */
__istream_type& __istream_type&
operator>>(bool& __n) operator>>(bool& __n)
{ return _M_extract(__n); } { return _M_extract(__n); }
__istream_type& __istream_type&
operator>>(short& __n); operator>>(short& __n);
__istream_type& __istream_type&
operator>>(unsigned short& __n) operator>>(unsigned short& __n)
{ return _M_extract(__n); } { return _M_extract(__n); }
__istream_type& __istream_type&
operator>>(int& __n); operator>>(int& __n);
__istream_type& __istream_type&
operator>>(unsigned int& __n) operator>>(unsigned int& __n)
{ return _M_extract(__n); } { return _M_extract(__n); }
__istream_type& __istream_type&
operator>>(long& __n) operator>>(long& __n)
{ return _M_extract(__n); } { return _M_extract(__n); }
__istream_type& __istream_type&
operator>>(unsigned long& __n) operator>>(unsigned long& __n)
{ return _M_extract(__n); } { return _M_extract(__n); }
#ifdef _GLIBCXX_USE_LONG_LONG #ifdef _GLIBCXX_USE_LONG_LONG
__istream_type& __istream_type&
operator>>(long long& __n) operator>>(long long& __n)
{ return _M_extract(__n); } { return _M_extract(__n); }
__istream_type& __istream_type&
operator>>(unsigned long long& __n) operator>>(unsigned long long& __n)
{ return _M_extract(__n); } { return _M_extract(__n); }
#endif #endif
//@}
__istream_type& //@{
/**
* @brief Floating point arithmetic extractors
* @param __f A variable of builtin floating point type.
* @return @c *this if successful
*
* These functions use the stream's current locale (specifically, the
* @c num_get facet) to parse the input data.
*/
__istream_type&
operator>>(float& __f) operator>>(float& __f)
{ return _M_extract(__f); } { return _M_extract(__f); }
__istream_type& __istream_type&
operator>>(double& __f) operator>>(double& __f)
{ return _M_extract(__f); } { return _M_extract(__f); }
__istream_type& __istream_type&
operator>>(long double& __f) operator>>(long double& __f)
{ return _M_extract(__f); } { return _M_extract(__f); }
//@}
__istream_type& /**
* @brief Basic arithmetic extractors
* @param __p A variable of pointer type.
* @return @c *this if successful
*
* These functions use the stream's current locale (specifically, the
* @c num_get facet) to parse the input data.
*/
__istream_type&
operator>>(void*& __p) operator>>(void*& __p)
{ return _M_extract(__p); } { return _M_extract(__p); }
...@@ -225,10 +241,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -225,10 +241,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* in that it also constructs a sentry object and has the same error * in that it also constructs a sentry object and has the same error
* handling behavior. * handling behavior.
* *
* If @a __sb is NULL, the stream will set failbit in its error state. * If @p __sb is NULL, the stream will set failbit in its error state.
* *
* Characters are extracted from this stream and inserted into the * Characters are extracted from this stream and inserted into the
* @a sb streambuf until one of the following occurs: * @p __sb streambuf until one of the following occurs:
* *
* - the input stream reaches end-of-file, * - the input stream reaches end-of-file,
* - insertion into the output buffer fails (in this case, the * - insertion into the output buffer fails (in this case, the
...@@ -237,20 +253,21 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -237,20 +253,21 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* *
* If the function inserts no characters, failbit is set. * If the function inserts no characters, failbit is set.
*/ */
__istream_type& __istream_type&
operator>>(__streambuf_type* __sb); operator>>(__streambuf_type* __sb);
//@} //@}
// [27.6.1.3] unformatted input // [27.6.1.3] unformatted input
/** /**
* @brief Character counting * @brief Character counting
* @return The number of characters extracted by the previous * @return The number of characters extracted by the previous
* unformatted input function dispatched for this stream. * unformatted input function dispatched for this stream.
*/ */
streamsize streamsize
gcount() const gcount() const
{ return _M_gcount; } { return _M_gcount; }
//@{
/** /**
* @name Unformatted Input Functions * @name Unformatted Input Functions
* *
...@@ -271,7 +288,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -271,7 +288,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* ios_base::failure to be thrown. The original exception will then * ios_base::failure to be thrown. The original exception will then
* be rethrown. * be rethrown.
*/ */
//@{
/** /**
* @brief Simple extraction. * @brief Simple extraction.
* @return A character, or eof(). * @return A character, or eof().
...@@ -279,7 +296,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -279,7 +296,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* Tries to extract a character. If none are available, sets failbit * Tries to extract a character. If none are available, sets failbit
* and returns traits::eof(). * and returns traits::eof().
*/ */
int_type int_type
get(); get();
/** /**
...@@ -293,7 +310,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -293,7 +310,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @note This function is not overloaded on signed char and * @note This function is not overloaded on signed char and
* unsigned char. * unsigned char.
*/ */
__istream_type& __istream_type&
get(char_type& __c); get(char_type& __c);
/** /**
...@@ -320,7 +337,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -320,7 +337,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @note This function is not overloaded on signed char and * @note This function is not overloaded on signed char and
* unsigned char. * unsigned char.
*/ */
__istream_type& __istream_type&
get(char_type* __s, streamsize __n, char_type __delim); get(char_type* __s, streamsize __n, char_type __delim);
/** /**
...@@ -331,7 +348,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -331,7 +348,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* *
* Returns @c get(__s,__n,widen(&apos;\\n&apos;)). * Returns @c get(__s,__n,widen(&apos;\\n&apos;)).
*/ */
__istream_type& __istream_type&
get(char_type* __s, streamsize __n) get(char_type* __s, streamsize __n)
{ return this->get(__s, __n, this->widen('\n')); } { return this->get(__s, __n, this->widen('\n')); }
...@@ -393,7 +410,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -393,7 +410,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* In any case, a null character is stored in the next location in * In any case, a null character is stored in the next location in
* the array. * the array.
*/ */
__istream_type& __istream_type&
getline(char_type* __s, streamsize __n, char_type __delim); getline(char_type* __s, streamsize __n, char_type __delim);
/** /**
...@@ -404,7 +421,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -404,7 +421,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* *
* Returns @c getline(__s,__n,widen(&apos;\\n&apos;)). * Returns @c getline(__s,__n,widen(&apos;\\n&apos;)).
*/ */
__istream_type& __istream_type&
getline(char_type* __s, streamsize __n) getline(char_type* __s, streamsize __n)
{ return this->getline(__s, __n, this->widen('\n')); } { return this->getline(__s, __n, this->widen('\n')); }
...@@ -428,13 +445,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -428,13 +445,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* better performing implementation, while still conforming to * better performing implementation, while still conforming to
* the Standard. * the Standard.
*/ */
__istream_type& __istream_type&
ignore(streamsize __n, int_type __delim); ignore(streamsize __n, int_type __delim);
__istream_type& __istream_type&
ignore(streamsize __n); ignore(streamsize __n);
__istream_type& __istream_type&
ignore(); ignore();
/** /**
...@@ -445,9 +462,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -445,9 +462,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* returns @c traits::eof(). Otherwise reads but does not extract * returns @c traits::eof(). Otherwise reads but does not extract
* the next input character. * the next input character.
*/ */
int_type int_type
peek(); peek();
/** /**
* @brief Extraction without delimiters. * @brief Extraction without delimiters.
* @param __s A character array. * @param __s A character array.
...@@ -463,7 +480,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -463,7 +480,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @note This function is not overloaded on signed char and * @note This function is not overloaded on signed char and
* unsigned char. * unsigned char.
*/ */
__istream_type& __istream_type&
read(char_type* __s, streamsize __n); read(char_type* __s, streamsize __n);
/** /**
...@@ -482,9 +499,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -482,9 +499,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* The goal is to empty the current buffer, and to not request any * The goal is to empty the current buffer, and to not request any
* more from the external input sequence controlled by the streambuf. * more from the external input sequence controlled by the streambuf.
*/ */
streamsize streamsize
readsome(char_type* __s, streamsize __n); readsome(char_type* __s, streamsize __n);
/** /**
* @brief Unextracting a single character. * @brief Unextracting a single character.
* @param __c The character to push back into the input stream. * @param __c The character to push back into the input stream.
...@@ -499,7 +516,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -499,7 +516,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* are extracted, the next call to @c gcount() will return 0, * are extracted, the next call to @c gcount() will return 0,
* as required by DR 60. * as required by DR 60.
*/ */
__istream_type& __istream_type&
putback(char_type __c); putback(char_type __c);
/** /**
...@@ -515,7 +532,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -515,7 +532,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* are extracted, the next call to @c gcount() will return 0, * are extracted, the next call to @c gcount() will return 0,
* as required by DR 60. * as required by DR 60.
*/ */
__istream_type& __istream_type&
unget(); unget();
/** /**
...@@ -533,7 +550,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -533,7 +550,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* extracted, if any, and therefore does not affect the next * extracted, if any, and therefore does not affect the next
* call to @c gcount(). * call to @c gcount().
*/ */
int int
sync(); sync();
/** /**
...@@ -579,7 +596,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -579,7 +596,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* number of characters extracted, if any, and therefore does * number of characters extracted, if any, and therefore does
* not affect the next call to @c gcount(). * not affect the next call to @c gcount().
*/ */
__istream_type& __istream_type&
seekg(off_type, ios_base::seekdir); seekg(off_type, ios_base::seekdir);
//@} //@}
...@@ -589,29 +606,29 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -589,29 +606,29 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ this->init(0); } { this->init(0); }
template<typename _ValueT> template<typename _ValueT>
__istream_type& __istream_type&
_M_extract(_ValueT& __v); _M_extract(_ValueT& __v);
}; };
// Explicit specialization declarations, defined in src/istream.cc. /// Explicit specialization declarations, defined in src/istream.cc.
template<> template<>
basic_istream<char>& basic_istream<char>&
basic_istream<char>:: basic_istream<char>::
getline(char_type* __s, streamsize __n, char_type __delim); getline(char_type* __s, streamsize __n, char_type __delim);
template<> template<>
basic_istream<char>& basic_istream<char>&
basic_istream<char>:: basic_istream<char>::
ignore(streamsize __n); ignore(streamsize __n);
template<> template<>
basic_istream<char>& basic_istream<char>&
basic_istream<char>:: basic_istream<char>::
ignore(streamsize __n, int_type __delim); ignore(streamsize __n, int_type __delim);
#ifdef _GLIBCXX_USE_WCHAR_T #ifdef _GLIBCXX_USE_WCHAR_T
template<> template<>
basic_istream<wchar_t>& basic_istream<wchar_t>&
basic_istream<wchar_t>:: basic_istream<wchar_t>::
getline(char_type* __s, streamsize __n, char_type __delim); getline(char_type* __s, streamsize __n, char_type __delim);
...@@ -619,7 +636,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -619,7 +636,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
basic_istream<wchar_t>& basic_istream<wchar_t>&
basic_istream<wchar_t>:: basic_istream<wchar_t>::
ignore(streamsize __n); ignore(streamsize __n);
template<> template<>
basic_istream<wchar_t>& basic_istream<wchar_t>&
basic_istream<wchar_t>:: basic_istream<wchar_t>::
...@@ -687,7 +704,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -687,7 +704,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ return _M_ok; } { return _M_ok; }
}; };
// [27.6.1.2.3] character extraction templates
//@{ //@{
/** /**
* @brief Character extractors * @brief Character extractors
...@@ -762,9 +778,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -762,9 +778,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ return (__in >> reinterpret_cast<char*>(__s)); } { return (__in >> reinterpret_cast<char*>(__s)); }
//@} //@}
// 27.6.1.5 Template class basic_iostream
/** /**
* @brief Merging istream and ostream capabilities. * @brief Template class basic_iostream
* @ingroup io * @ingroup io
* *
* This class multiply inherits from the input and output stream classes * This class multiply inherits from the input and output stream classes
...@@ -772,18 +787,18 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -772,18 +787,18 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
*/ */
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
class basic_iostream class basic_iostream
: public basic_istream<_CharT, _Traits>, : public basic_istream<_CharT, _Traits>,
public basic_ostream<_CharT, _Traits> public basic_ostream<_CharT, _Traits>
{ {
public: public:
// _GLIBCXX_RESOLVE_LIB_DEFECTS // _GLIBCXX_RESOLVE_LIB_DEFECTS
// 271. basic_iostream missing typedefs // 271. basic_iostream missing typedefs
// Types (inherited): // Types (inherited):
typedef _CharT char_type; typedef _CharT char_type;
typedef typename _Traits::int_type int_type; typedef typename _Traits::int_type int_type;
typedef typename _Traits::pos_type pos_type; typedef typename _Traits::pos_type pos_type;
typedef typename _Traits::off_type off_type; typedef typename _Traits::off_type off_type;
typedef _Traits traits_type; typedef _Traits traits_type;
// Non-standard Types: // Non-standard Types:
typedef basic_istream<_CharT, _Traits> __istream_type; typedef basic_istream<_CharT, _Traits> __istream_type;
...@@ -802,7 +817,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -802,7 +817,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
/** /**
* @brief Destructor does nothing. * @brief Destructor does nothing.
*/ */
virtual virtual
~basic_iostream() { } ~basic_iostream() { }
protected: protected:
...@@ -810,7 +825,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -810,7 +825,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
: __istream_type(), __ostream_type() { } : __istream_type(), __ostream_type() { }
}; };
// [27.6.1.4] standard basic_istream manipulators
/** /**
* @brief Quick and easy way to eat whitespace * @brief Quick and easy way to eat whitespace
* *
...@@ -832,7 +846,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -832,7 +846,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* std::basic_istream::sentry inside your definition of operator>>. * std::basic_istream::sentry inside your definition of operator>>.
*/ */
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>&
ws(basic_istream<_CharT, _Traits>& __is); ws(basic_istream<_CharT, _Traits>& __is);
#ifdef __GXX_EXPERIMENTAL_CXX0X__ #ifdef __GXX_EXPERIMENTAL_CXX0X__
......
...@@ -44,9 +44,8 @@ namespace std _GLIBCXX_VISIBILITY(default) ...@@ -44,9 +44,8 @@ namespace std _GLIBCXX_VISIBILITY(default)
{ {
_GLIBCXX_BEGIN_NAMESPACE_VERSION _GLIBCXX_BEGIN_NAMESPACE_VERSION
// [27.6.2.1] Template class basic_ostream
/** /**
* @brief Controlling output. * @brief Template class basic_ostream.
* @ingroup io * @ingroup io
* *
* This is the base class for all output streams. It provides text * This is the base class for all output streams. It provides text
...@@ -57,22 +56,21 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -57,22 +56,21 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
class basic_ostream : virtual public basic_ios<_CharT, _Traits> class basic_ostream : virtual public basic_ios<_CharT, _Traits>
{ {
public: public:
// Types (inherited from basic_ios (27.4.4)): // Types (inherited from basic_ios):
typedef _CharT char_type; typedef _CharT char_type;
typedef typename _Traits::int_type int_type; typedef typename _Traits::int_type int_type;
typedef typename _Traits::pos_type pos_type; typedef typename _Traits::pos_type pos_type;
typedef typename _Traits::off_type off_type; typedef typename _Traits::off_type off_type;
typedef _Traits traits_type; typedef _Traits traits_type;
// Non-standard Types: // Non-standard Types:
typedef basic_streambuf<_CharT, _Traits> __streambuf_type; typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
typedef basic_ios<_CharT, _Traits> __ios_type; typedef basic_ios<_CharT, _Traits> __ios_type;
typedef basic_ostream<_CharT, _Traits> __ostream_type; typedef basic_ostream<_CharT, _Traits> __ostream_type;
typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> >
__num_put_type; __num_put_type;
typedef ctype<_CharT> __ctype_type; typedef ctype<_CharT> __ctype_type;
// [27.6.2.2] constructor/destructor
/** /**
* @brief Base constructor. * @brief Base constructor.
* *
...@@ -80,7 +78,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -80,7 +78,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* derived classes' initialization lists, which pass a pointer to * derived classes' initialization lists, which pass a pointer to
* their own stream buffer. * their own stream buffer.
*/ */
explicit explicit
basic_ostream(__streambuf_type* __sb) basic_ostream(__streambuf_type* __sb)
{ this->init(__sb); } { this->init(__sb); }
...@@ -89,15 +87,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -89,15 +87,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* *
* This does very little apart from providing a virtual base dtor. * This does very little apart from providing a virtual base dtor.
*/ */
virtual virtual
~basic_ostream() { } ~basic_ostream() { }
// [27.6.2.3] prefix/suffix /// Safe prefix/suffix operations.
class sentry; class sentry;
friend class sentry; friend class sentry;
// [27.6.2.5] formatted output
// [27.6.2.5.3] basic_ostream::operator<<
//@{ //@{
/** /**
* @brief Interface for manipulators. * @brief Interface for manipulators.
...@@ -136,9 +132,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -136,9 +132,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
} }
//@} //@}
// [27.6.2.5.2] arithmetic inserters //@{
/** /**
* @name Arithmetic Inserters * @name Inserters
* *
* All the @c operator<< functions (aka <em>formatted output * All the @c operator<< functions (aka <em>formatted output
* functions</em>) have some common behavior. Each starts by * functions</em>) have some common behavior. Each starts by
...@@ -154,31 +150,32 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -154,31 +150,32 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* ios_base::failure to be thrown. The original exception will then * ios_base::failure to be thrown. The original exception will then
* be rethrown. * be rethrown.
*/ */
//@{ //@{
/** /**
* @brief Basic arithmetic inserters * @brief Integer arithmetic inserters
* @param __n, __f, __p A variable of builtin type. * @param __n A variable of builtin integral type.
* @return @c *this if successful * @return @c *this if successful
* *
* These functions use the stream's current locale (specifically, the * These functions use the stream's current locale (specifically, the
* @c num_get facet) to perform numeric formatting. * @c num_get facet) to perform numeric formatting.
*/ */
__ostream_type& __ostream_type&
operator<<(long __n) operator<<(long __n)
{ return _M_insert(__n); } { return _M_insert(__n); }
__ostream_type& __ostream_type&
operator<<(unsigned long __n) operator<<(unsigned long __n)
{ return _M_insert(__n); } { return _M_insert(__n); }
__ostream_type& __ostream_type&
operator<<(bool __n) operator<<(bool __n)
{ return _M_insert(__n); } { return _M_insert(__n); }
__ostream_type& __ostream_type&
operator<<(short __n); operator<<(short __n);
__ostream_type& __ostream_type&
operator<<(unsigned short __n) operator<<(unsigned short __n)
{ {
// _GLIBCXX_RESOLVE_LIB_DEFECTS // _GLIBCXX_RESOLVE_LIB_DEFECTS
...@@ -186,10 +183,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -186,10 +183,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return _M_insert(static_cast<unsigned long>(__n)); return _M_insert(static_cast<unsigned long>(__n));
} }
__ostream_type& __ostream_type&
operator<<(int __n); operator<<(int __n);
__ostream_type& __ostream_type&
operator<<(unsigned int __n) operator<<(unsigned int __n)
{ {
// _GLIBCXX_RESOLVE_LIB_DEFECTS // _GLIBCXX_RESOLVE_LIB_DEFECTS
...@@ -198,20 +195,30 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -198,20 +195,30 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
} }
#ifdef _GLIBCXX_USE_LONG_LONG #ifdef _GLIBCXX_USE_LONG_LONG
__ostream_type& __ostream_type&
operator<<(long long __n) operator<<(long long __n)
{ return _M_insert(__n); } { return _M_insert(__n); }
__ostream_type& __ostream_type&
operator<<(unsigned long long __n) operator<<(unsigned long long __n)
{ return _M_insert(__n); } { return _M_insert(__n); }
#endif #endif
//@}
__ostream_type& //@{
/**
* @brief Floating point arithmetic inserters
* @param __f A variable of builtin floating point type.
* @return @c *this if successful
*
* These functions use the stream's current locale (specifically, the
* @c num_get facet) to perform numeric formatting.
*/
__ostream_type&
operator<<(double __f) operator<<(double __f)
{ return _M_insert(__f); } { return _M_insert(__f); }
__ostream_type& __ostream_type&
operator<<(float __f) operator<<(float __f)
{ {
// _GLIBCXX_RESOLVE_LIB_DEFECTS // _GLIBCXX_RESOLVE_LIB_DEFECTS
...@@ -219,11 +226,20 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -219,11 +226,20 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return _M_insert(static_cast<double>(__f)); return _M_insert(static_cast<double>(__f));
} }
__ostream_type& __ostream_type&
operator<<(long double __f) operator<<(long double __f)
{ return _M_insert(__f); } { return _M_insert(__f); }
//@}
__ostream_type& /**
* @brief Pointer arithmetic inserters
* @param __p A variable of pointer type.
* @return @c *this if successful
*
* These functions use the stream's current locale (specifically, the
* @c num_get facet) to perform numeric formatting.
*/
__ostream_type&
operator<<(const void* __p) operator<<(const void* __p)
{ return _M_insert(__p); } { return _M_insert(__p); }
...@@ -235,24 +251,24 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -235,24 +251,24 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* in that it also constructs a sentry object and has the same error * in that it also constructs a sentry object and has the same error
* handling behavior. * handling behavior.
* *
* If @a __sb is NULL, the stream will set failbit in its error state. * If @p __sb is NULL, the stream will set failbit in its error state.
* *
* Characters are extracted from @a __sb and inserted into @c *this * Characters are extracted from @p __sb and inserted into @c *this
* until one of the following occurs: * until one of the following occurs:
* *
* - the input stream reaches end-of-file, * - the input stream reaches end-of-file,
* - insertion into the output sequence fails (in this case, the * - insertion into the output sequence fails (in this case, the
* character that would have been inserted is not extracted), or * character that would have been inserted is not extracted), or
* - an exception occurs while getting a character from @a __sb, which * - an exception occurs while getting a character from @p __sb, which
* sets failbit in the error state * sets failbit in the error state
* *
* If the function inserts no characters, failbit is set. * If the function inserts no characters, failbit is set.
*/ */
__ostream_type& __ostream_type&
operator<<(__streambuf_type* __sb); operator<<(__streambuf_type* __sb);
//@} //@}
// [27.6.2.6] unformatted output functions //@{
/** /**
* @name Unformatted Output Functions * @name Unformatted Output Functions
* *
...@@ -270,21 +286,25 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -270,21 +286,25 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* the stream's exceptions mask, the exception will be rethrown * the stream's exceptions mask, the exception will be rethrown
* without completing its actions. * without completing its actions.
*/ */
//@{
/** /**
* @brief Simple insertion. * @brief Simple insertion.
* @param __c The character to insert. * @param __c The character to insert.
* @return *this * @return *this
* *
* Tries to insert @a c. * Tries to insert @p __c.
* *
* @note This function is not overloaded on signed char and * @note This function is not overloaded on signed char and
* unsigned char. * unsigned char.
*/ */
__ostream_type& __ostream_type&
put(char_type __c); put(char_type __c);
// Core write functionality, without sentry. /**
* @brief Core write functionality, without sentry.
* @param __s The array to insert.
* @param __n Maximum number of characters to insert.
*/
void void
_M_write(const char_type* __s, streamsize __n) _M_write(const char_type* __s, streamsize __n)
{ {
...@@ -299,17 +319,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -299,17 +319,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @param __n Maximum number of characters to insert. * @param __n Maximum number of characters to insert.
* @return *this * @return *this
* *
* Characters are copied from @a __s and inserted into the stream until * Characters are copied from @p __s and inserted into the stream until
* one of the following happens: * one of the following happens:
* *
* - @a __n characters are inserted * - @p __n characters are inserted
* - inserting into the output sequence fails (in this case, badbit * - inserting into the output sequence fails (in this case, badbit
* will be set in the stream's error state) * will be set in the stream's error state)
* *
* @note This function is not overloaded on signed char and * @note This function is not overloaded on signed char and
* unsigned char. * unsigned char.
*/ */
__ostream_type& __ostream_type&
write(const char_type* __s, streamsize __n); write(const char_type* __s, streamsize __n);
//@} //@}
...@@ -322,10 +342,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -322,10 +342,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* Otherwise, calls @c rdbuf()->pubsync(), and if that returns -1, * Otherwise, calls @c rdbuf()->pubsync(), and if that returns -1,
* sets badbit. * sets badbit.
*/ */
__ostream_type& __ostream_type&
flush(); flush();
// [27.6.2.4] seek members
/** /**
* @brief Getting the current write position. * @brief Getting the current write position.
* @return A file position object. * @return A file position object.
...@@ -333,7 +352,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -333,7 +352,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* If @c fail() is not false, returns @c pos_type(-1) to indicate * If @c fail() is not false, returns @c pos_type(-1) to indicate
* failure. Otherwise returns @c rdbuf()->pubseekoff(0,cur,out). * failure. Otherwise returns @c rdbuf()->pubseekoff(0,cur,out).
*/ */
pos_type pos_type
tellp(); tellp();
/** /**
...@@ -344,7 +363,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -344,7 +363,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* If @c fail() is not true, calls @c rdbuf()->pubseekpos(pos). If * If @c fail() is not true, calls @c rdbuf()->pubseekpos(pos). If
* that function fails, sets failbit. * that function fails, sets failbit.
*/ */
__ostream_type& __ostream_type&
seekp(pos_type); seekp(pos_type);
/** /**
...@@ -356,16 +375,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -356,16 +375,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* If @c fail() is not true, calls @c rdbuf()->pubseekoff(off,dir). * If @c fail() is not true, calls @c rdbuf()->pubseekoff(off,dir).
* If that function fails, sets failbit. * If that function fails, sets failbit.
*/ */
__ostream_type& __ostream_type&
seekp(off_type, ios_base::seekdir); seekp(off_type, ios_base::seekdir);
protected: protected:
basic_ostream() basic_ostream()
{ this->init(0); } { this->init(0); }
template<typename _ValueT> template<typename _ValueT>
__ostream_type& __ostream_type&
_M_insert(_ValueT __v); _M_insert(_ValueT __v);
}; };
/** /**
...@@ -381,7 +400,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -381,7 +400,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Data Members. // Data Members.
bool _M_ok; bool _M_ok;
basic_ostream<_CharT, _Traits>& _M_os; basic_ostream<_CharT, _Traits>& _M_os;
public: public:
/** /**
* @brief The constructor performs preparatory work. * @brief The constructor performs preparatory work.
...@@ -429,7 +448,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -429,7 +448,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ return _M_ok; } { return _M_ok; }
}; };
// [27.6.2.5.4] character insertion templates
//@{ //@{
/** /**
* @brief Character inserters * @brief Character inserters
...@@ -443,7 +461,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -443,7 +461,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* padding (as determined by [22.2.2.2.2]). @c __out.width(0) is then * padding (as determined by [22.2.2.2.2]). @c __out.width(0) is then
* called. * called.
* *
* If @a __c is of type @c char and the character type of the stream is not * If @p __c is of type @c char and the character type of the stream is not
* @c char, the character is widened before insertion. * @c char, the character is widened before insertion.
*/ */
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
...@@ -457,7 +475,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -457,7 +475,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ return (__out << __out.widen(__c)); } { return (__out << __out.widen(__c)); }
// Specialization // Specialization
template <class _Traits> template <class _Traits>
inline basic_ostream<char, _Traits>& inline basic_ostream<char, _Traits>&
operator<<(basic_ostream<char, _Traits>& __out, char __c) operator<<(basic_ostream<char, _Traits>& __out, char __c)
{ return __ostream_insert(__out, &__c, 1); } { return __ostream_insert(__out, &__c, 1); }
...@@ -467,25 +485,25 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -467,25 +485,25 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
inline basic_ostream<char, _Traits>& inline basic_ostream<char, _Traits>&
operator<<(basic_ostream<char, _Traits>& __out, signed char __c) operator<<(basic_ostream<char, _Traits>& __out, signed char __c)
{ return (__out << static_cast<char>(__c)); } { return (__out << static_cast<char>(__c)); }
template<class _Traits> template<class _Traits>
inline basic_ostream<char, _Traits>& inline basic_ostream<char, _Traits>&
operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c) operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c)
{ return (__out << static_cast<char>(__c)); } { return (__out << static_cast<char>(__c)); }
//@} //@}
//@{ //@{
/** /**
* @brief String inserters * @brief String inserters
* @param __out An output stream. * @param __out An output stream.
* @param __s A character string. * @param __s A character string.
* @return out * @return out
* @pre @a s must be a non-NULL pointer * @pre @p __s must be a non-NULL pointer
* *
* Behaves like one of the formatted arithmetic inserters described in * Behaves like one of the formatted arithmetic inserters described in
* std::basic_ostream. After constructing a sentry object with good * std::basic_ostream. After constructing a sentry object with good
* status, this function inserts @c traits::length(__s) characters starting * status, this function inserts @c traits::length(__s) characters starting
* at @a __s, widened if necessary, followed by any required padding (as * at @p __s, widened if necessary, followed by any required padding (as
* determined by [22.2.2.2.2]). @c __out.width(0) is then called. * determined by [22.2.2.2.2]). @c __out.width(0) is then called.
*/ */
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
...@@ -529,7 +547,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -529,7 +547,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ return (__out << reinterpret_cast<const char*>(__s)); } { return (__out << reinterpret_cast<const char*>(__s)); }
//@} //@}
// [27.6.2.7] standard basic_ostream manipulators // Standard basic_ostream manipulators
/** /**
* @brief Write a newline and flush the stream. * @brief Write a newline and flush the stream.
* *
...@@ -539,33 +558,33 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -539,33 +558,33 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* for more on this subject. * for more on this subject.
*/ */
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
inline basic_ostream<_CharT, _Traits>& inline basic_ostream<_CharT, _Traits>&
endl(basic_ostream<_CharT, _Traits>& __os) endl(basic_ostream<_CharT, _Traits>& __os)
{ return flush(__os.put(__os.widen('\n'))); } { return flush(__os.put(__os.widen('\n'))); }
/** /**
* @brief Write a null character into the output sequence. * @brief Write a null character into the output sequence.
* *
* <em>Null character</em> is @c CharT() by definition. For CharT of @c char, * <em>Null character</em> is @c CharT() by definition. For CharT
* this correctly writes the ASCII @c NUL character string terminator. * of @c char, this correctly writes the ASCII @c NUL character
* string terminator.
*/ */
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
inline basic_ostream<_CharT, _Traits>& inline basic_ostream<_CharT, _Traits>&
ends(basic_ostream<_CharT, _Traits>& __os) ends(basic_ostream<_CharT, _Traits>& __os)
{ return __os.put(_CharT()); } { return __os.put(_CharT()); }
/** /**
* @brief Flushes the output stream. * @brief Flushes the output stream.
* *
* This manipulator simply calls the stream's @c flush() member function. * This manipulator simply calls the stream's @c flush() member function.
*/ */
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
inline basic_ostream<_CharT, _Traits>& inline basic_ostream<_CharT, _Traits>&
flush(basic_ostream<_CharT, _Traits>& __os) flush(basic_ostream<_CharT, _Traits>& __os)
{ return __os.flush(); } { return __os.flush(); }
#ifdef __GXX_EXPERIMENTAL_CXX0X__ #ifdef __GXX_EXPERIMENTAL_CXX0X__
// [27.7.2.9] Rvalue stream insertion
/** /**
* @brief Generic inserter for rvalue stream * @brief Generic inserter for rvalue stream
* @param __os An input stream. * @param __os An input stream.
...@@ -583,7 +602,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -583,7 +602,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#endif // __GXX_EXPERIMENTAL_CXX0X__ #endif // __GXX_EXPERIMENTAL_CXX0X__
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
} // namespace } // namespace std
#include <bits/ostream.tcc> #include <bits/ostream.tcc>
......
...@@ -738,10 +738,10 @@ public: ...@@ -738,10 +738,10 @@ public:
/** /**
* @brief Use a subset of a string. * @brief Use a subset of a string.
* @param str A string of '0' and '1' characters. * @param __str A string of '0' and '1' characters.
* @param pos Index of the first character in @a s to use. * @param __pos Index of the first character in @p __str to use.
* @param n The number of characters to copy. * @param __n The number of characters to copy.
* @throw std::out_of_range If @a pos is bigger the size of @a s. * @throw std::out_of_range If @p __pos is bigger the size of @p __str.
* @throw std::invalid_argument If a character appears in the string * @throw std::invalid_argument If a character appears in the string
* which is neither '0' nor '1'. * which is neither '0' nor '1'.
*/ */
...@@ -770,7 +770,7 @@ public: ...@@ -770,7 +770,7 @@ public:
/** /**
* @brief Construct from a string. * @brief Construct from a string.
* @param str A string of '0' and '1' characters. * @param __str A string of '0' and '1' characters.
* @throw std::invalid_argument If a character appears in the string * @throw std::invalid_argument If a character appears in the string
* which is neither '0' nor '1'. * which is neither '0' nor '1'.
*/ */
...@@ -907,7 +907,7 @@ public: ...@@ -907,7 +907,7 @@ public:
//@{ //@{
/** /**
* @brief Operations on dynamic_bitsets. * @brief Operations on dynamic_bitsets.
* @param rhs A same-sized dynamic_bitset. * @param __rhs A same-sized dynamic_bitset.
* *
* These should be self-explanatory. * These should be self-explanatory.
*/ */
...@@ -950,7 +950,7 @@ public: ...@@ -950,7 +950,7 @@ public:
//@{ //@{
/** /**
* @brief Operations on dynamic_bitsets. * @brief Operations on dynamic_bitsets.
* @param position The number of places to shift. * @param __pos The number of places to shift.
* *
* These should be self-explanatory. * These should be self-explanatory.
*/ */
...@@ -995,9 +995,9 @@ public: ...@@ -995,9 +995,9 @@ public:
/** /**
* @brief Sets a given bit to a particular value. * @brief Sets a given bit to a particular value.
* @param position The index of the bit. * @param __pos The index of the bit.
* @param val Either true or false, defaults to true. * @param __val Either true or false, defaults to true.
* @throw std::out_of_range If @a pos is bigger the size of the %set. * @throw std::out_of_range If @a __pos is bigger the size of the %set.
*/ */
dynamic_bitset<_WordT, _Alloc>& dynamic_bitset<_WordT, _Alloc>&
set(size_type __pos, bool __val = true) set(size_type __pos, bool __val = true)
...@@ -1019,10 +1019,10 @@ public: ...@@ -1019,10 +1019,10 @@ public:
/** /**
* @brief Sets a given bit to false. * @brief Sets a given bit to false.
* @param position The index of the bit. * @param __pos The index of the bit.
* @throw std::out_of_range If @a pos is bigger the size of the %set. * @throw std::out_of_range If @a __pos is bigger the size of the %set.
* *
* Same as writing @c set(pos,false). * Same as writing @c set(__pos, false).
*/ */
dynamic_bitset<_WordT, _Alloc>& dynamic_bitset<_WordT, _Alloc>&
reset(size_type __pos) reset(size_type __pos)
...@@ -1045,8 +1045,8 @@ public: ...@@ -1045,8 +1045,8 @@ public:
/** /**
* @brief Toggles a given bit to its opposite value. * @brief Toggles a given bit to its opposite value.
* @param position The index of the bit. * @param __pos The index of the bit.
* @throw std::out_of_range If @a pos is bigger the size of the %set. * @throw std::out_of_range If @a __pos is bigger the size of the %set.
*/ */
dynamic_bitset<_WordT, _Alloc>& dynamic_bitset<_WordT, _Alloc>&
flip(size_type __pos) flip(size_type __pos)
...@@ -1064,7 +1064,7 @@ public: ...@@ -1064,7 +1064,7 @@ public:
//@{ //@{
/** /**
* @brief Array-indexing support. * @brief Array-indexing support.
* @param position Index into the %dynamic_bitset. * @param __pos Index into the %dynamic_bitset.
* @return A bool for a 'const %dynamic_bitset'. For non-const * @return A bool for a 'const %dynamic_bitset'. For non-const
* bitsets, an instance of the reference proxy class. * bitsets, an instance of the reference proxy class.
* @note These operators do no range checking and throw no * @note These operators do no range checking and throw no
...@@ -1167,9 +1167,9 @@ public: ...@@ -1167,9 +1167,9 @@ public:
/** /**
* @brief Tests the value of a bit. * @brief Tests the value of a bit.
* @param position The index of a bit. * @param __pos The index of a bit.
* @return The value at @a pos. * @return The value at @a __pos.
* @throw std::out_of_range If @a pos is bigger the size of the %set. * @throw std::out_of_range If @a __pos is bigger the size of the %set.
*/ */
bool bool
test(size_type __pos) const test(size_type __pos) const
...@@ -1226,7 +1226,7 @@ public: ...@@ -1226,7 +1226,7 @@ public:
/** /**
* @brief Finds the index of the next "on" bit after prev. * @brief Finds the index of the next "on" bit after prev.
* @return The index of the next bit set, or size() if not found. * @return The index of the next bit set, or size() if not found.
* @param prev Where to start searching. * @param __prev Where to start searching.
* @sa find_first * @sa find_first
*/ */
size_type size_type
...@@ -1321,8 +1321,8 @@ public: ...@@ -1321,8 +1321,8 @@ public:
//@{ //@{
/** /**
* @brief Global bitwise operations on bitsets. * @brief Global bitwise operations on bitsets.
* @param x A bitset. * @param __x A bitset.
* @param y A bitset of the same size as @a x. * @param __y A bitset of the same size as @a __x.
* @return A new bitset. * @return A new bitset.
* *
* These should be self-explanatory. * These should be self-explanatory.
......
...@@ -325,14 +325,6 @@ for f in *__profile_*; do ...@@ -325,14 +325,6 @@ for f in *__profile_*; do
newname=`echo $f | sed 's/__profile_/__profile::/'` newname=`echo $f | sed 's/__profile_/__profile::/'`
mv $f $newname mv $f $newname
done done
for f in *__atomic0_*; do
newname=`echo $f | sed 's/__atomic0_/__atomic0::/'`
mv $f $newname
done
for f in *__atomic2_*; do
newname=`echo $f | sed 's/__atomic2_/__atomic2::/'`
mv $f $newname
done
# Then, clean up other top-level namespaces. # Then, clean up other top-level namespaces.
for f in std_tr1_*; do for f in std_tr1_*; do
...@@ -373,11 +365,6 @@ for f in __cxxabiv1_*; do ...@@ -373,11 +365,6 @@ for f in __cxxabiv1_*; do
done done
# Then piecemeal nested classes # Then piecemeal nested classes
for f in *__future_base_*; do
newname=`echo $f | sed 's/__future_base_/__future_base::/'`
mv $f $newname
done
# Generic removal bits, where there are things in the generated man # Generic removal bits, where there are things in the generated man
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1551 } // { dg-error "no matching" "" { target *-*-* } 1552 }
#include <list> #include <list>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1507 } // { dg-error "no matching" "" { target *-*-* } 1508 }
#include <list> #include <list>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1507 } // { dg-error "no matching" "" { target *-*-* } 1508 }
#include <list> #include <list>
#include <utility> #include <utility>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-do compile } // { dg-do compile }
// { dg-error "no matching" "" { target *-*-* } 1507 } // { dg-error "no matching" "" { target *-*-* } 1508 }
#include <list> #include <list>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment