Commit 08addde6 by Phil Edwards

BUGS: Update from 2.90.8 snapshot.

2003-06-10  Phil Edwards  <pme@gcc.gnu.org>

	* docs/html/17_intro/BUGS:  Update from 2.90.8 snapshot.
	* docs/html/17_intro/CHECKLIST:  Bring up to date with respect to
	correctness of container::iterator typedefs.  Fix whitespace.
	* docs/html/20_util/howto.html, docs/html/ext/howto.html:  Add links
	to allocator docs.
	* docs/html/documentation.html:  Regenerate.

	* include/bits/basic_string.h, include/bits/basic_string.tcc,
	include/bits/deque.tcc, include/bits/list.tcc, include/bits/stl_algo.h,
	include/bits/stl_algobase.h, include/bits/stl_bvector.h,
	include/bits/stl_deque.h, include/bits/stl_iterator_base_funcs.h,
	include/bits/stl_list.h, include/bits/stl_uninitialized.h,
	include/bits/stl_vector.h, include/bits/vector.tcc,
	include/ext/algorithm, include/ext/slist, include/std/std_bitset.h:
	Change _Iter names to _Iterator, and __pos to __position.

	* include/bits/stl_relops.h, include/bits/stl_numeric.h,
	include/bits/stl_multiset.h, include/bits/stl_set.h:
	Remove emacs markers.

	* include/bits/stl_threads.h (_STL_auto_lock):  Add __unused__.

From-SVN: r67736
parent e8face4c
2003-06-10 Phil Edwards <pme@gcc.gnu.org>
* docs/html/17_intro/BUGS: Update from 2.90.8 snapshot.
* docs/html/17_intro/CHECKLIST: Bring up to date with respect to
correctness of container::iterator typedefs. Fix whitespace.
* docs/html/20_util/howto.html, docs/html/ext/howto.html: Add links
to allocator docs.
* docs/html/documentation.html: Regenerate.
* include/bits/basic_string.h, include/bits/basic_string.tcc,
include/bits/deque.tcc, include/bits/list.tcc, include/bits/stl_algo.h,
include/bits/stl_algobase.h, include/bits/stl_bvector.h,
include/bits/stl_deque.h, include/bits/stl_iterator_base_funcs.h,
include/bits/stl_list.h, include/bits/stl_uninitialized.h,
include/bits/stl_vector.h, include/bits/vector.tcc,
include/ext/algorithm, include/ext/slist, include/std/std_bitset.h:
Change _Iter names to _Iterator, and __pos to __position.
* include/bits/stl_relops.h, include/bits/stl_numeric.h,
include/bits/stl_multiset.h, include/bits/stl_set.h:
Remove emacs markers.
* include/bits/stl_threads.h (_STL_auto_lock): Add __unused__.
2003-06-10 Paolo Carlini <pcarlini@unitus.it>
* include/bits/fstream.tcc (overflow): According to
......
2000-03-24 libstdc++2.90.8
- testsuite/27_io/istream_extractors_char.cc:
Failing on all platforms with -O2, working with -O. Need to look at this.
2003-04-26
- _GLIBCPP_HAS_BUILTIN_SINF: We should still hold out for a cleaner solution the is currenly the case in bits/std_cmath.h.
......
......@@ -30,6 +30,7 @@
<li><a href="#2"><code>auto_ptr</code> inside container classes</a></li>
<li><a href="#3">Functors</a></li>
<li><a href="#4">Pairs</a></li>
<li><a href="#5">Memory allocators</a></li>
</ul>
<hr />
......@@ -207,7 +208,14 @@
<a href="../faq/index.html">to the FAQ</a>.
</p>
<hr />
<h2><a name="5">Memory allocators</a></h2>
<p>The available free store (&quot;heap&quot;) management classes are
described <a href="../ext/howto.html">here</a>.
</p>
<p>Return <a href="#top">to top of page</a> or
<a href="../faq/index.html">to the FAQ</a>.
</p>
<!-- ####################################################### -->
......
......@@ -143,6 +143,7 @@
<li><a href="20_util/howto.html#2"><code>auto_ptr</code> inside container classes</a></li>
<li><a href="20_util/howto.html#3">Functors</a></li>
<li><a href="20_util/howto.html#4">Pairs</a></li>
<li><a href="20_util/howto.html#5">Memory allocators</a></li>
</ul>
</li>
......@@ -222,8 +223,8 @@
<ul>
<li><a href="ext/howto.html#1">Ropes and trees and hashes, oh my!</a></li>
<li><a href="ext/howto.html#2">Added members and types</a></li>
<li><a href="ext/howto.html#3">Allocators (versions 3.0, 3.1, 3.2)</a></li>
<li><a href="ext/howto.html#6">Allocators (version 3.3)</a></li>
<li><a href="ext/howto.html#3">Allocators (versions 3.0, 3.1, 3.2, 3.3)</a></li>
<li><a href="ext/howto.html#6">Allocators (version 3.4)</a></li>
<li><a href="ext/howto.html#4">Compile-time checks</a></li>
<li><a href="ext/howto.html#5">LWG Issues</a></li>
<li><a href="ext/../18_support/howto.html#5">Demangling</a></li>
......
......@@ -41,8 +41,8 @@
<ul>
<li><a href="#1">Ropes and trees and hashes, oh my!</a></li>
<li><a href="#2">Added members and types</a></li>
<li><a href="#3">Allocators (versions 3.0, 3.1, 3.2)</a></li>
<li><a href="#6">Allocators (version 3.3)</a></li>
<li><a href="#3">Allocators (versions 3.0, 3.1, 3.2, 3.3)</a></li>
<li><a href="#6">Allocators (version 3.4)</a></li>
<li><a href="#4">Compile-time checks</a></li>
<li><a href="#5">LWG Issues</a></li>
<li><a href="../18_support/howto.html#5">Demangling</a></li>
......@@ -134,7 +134,7 @@
</p>
<hr />
<h2><a name="3">Allocators (versions 3.0, 3.1, 3.2)</a></h2>
<h2><a name="3">Allocators (versions 3.0, 3.1, 3.2, 3.3)</a></h2>
<p>Thread-safety, space efficiency, high speed, portability... this is a
mess. Where to begin?
</p>
......@@ -361,9 +361,14 @@
</p>
<hr />
<h2><a name="6">Allocators (version 3.3)</a></h2>
<h2><a name="6">Allocators (version 3.4)</a></h2>
<p>Changes are coming...
</p>
<p>If you plan on writing your own allocators,
<a href="../documentation.html#4">source documentation</a> is
available. You'll need to get the &quot;maintainers&quot; collection
in order to see the helper classes and extra notes.
</p>
<p>Return <a href="#top">to top of page</a> or
<a href="../faq/index.html">to the FAQ</a>.
</p>
......
......@@ -661,43 +661,43 @@ namespace std
// _S_construct_aux is used to implement the 21.3.1 para 15 which
// requires special behaviour if _InIter is an integral type
template<class _InIter>
template<class _InIterator>
static _CharT*
_S_construct_aux(_InIter __beg, _InIter __end, const _Alloc& __a,
_S_construct_aux(_InIterator __beg, _InIterator __end, const _Alloc& __a,
__false_type)
{
typedef typename iterator_traits<_InIter>::iterator_category _Tag;
typedef typename iterator_traits<_InIterator>::iterator_category _Tag;
return _S_construct(__beg, __end, __a, _Tag());
}
template<class _InIter>
template<class _InIterator>
static _CharT*
_S_construct_aux(_InIter __beg, _InIter __end, const _Alloc& __a,
_S_construct_aux(_InIterator __beg, _InIterator __end, const _Alloc& __a,
__true_type)
{
return _S_construct(static_cast<size_type>(__beg),
static_cast<value_type>(__end), __a);
}
template<class _InIter>
template<class _InIterator>
static _CharT*
_S_construct(_InIter __beg, _InIter __end, const _Alloc& __a)
_S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a)
{
typedef typename _Is_integer<_InIter>::_Integral _Integral;
typedef typename _Is_integer<_InIterator>::_Integral _Integral;
return _S_construct_aux(__beg, __end, __a, _Integral());
}
// For Input Iterators, used in istreambuf_iterators, etc.
template<class _InIter>
template<class _InIterator>
static _CharT*
_S_construct(_InIter __beg, _InIter __end, const _Alloc& __a,
_S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
input_iterator_tag);
// For forward_iterators up to random_access_iterators, used for
// string::iterator, _CharT*, etc.
template<class _FwdIter>
template<class _FwdIterator>
static _CharT*
_S_construct(_FwdIter __beg, _FwdIter __end, const _Alloc& __a,
_S_construct(_FwdIterator __beg, _FwdIterator __end, const _Alloc& __a,
forward_iterator_tag);
static _CharT*
......
......@@ -71,10 +71,10 @@ namespace std
// Input Iterators have a cost structure very different from
// pointers, calling for a different coding style.
template<typename _CharT, typename _Traits, typename _Alloc>
template<typename _InIter>
template<typename _InIterator>
_CharT*
basic_string<_CharT, _Traits, _Alloc>::
_S_construct(_InIter __beg, _InIter __end, const _Alloc& __a,
_S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
input_iterator_tag)
{
if (__beg == __end && __a == _Alloc())
......@@ -131,17 +131,17 @@ namespace std
}
template<typename _CharT, typename _Traits, typename _Alloc>
template <class _InIter>
template <class _InIterator>
_CharT*
basic_string<_CharT, _Traits, _Alloc>::
_S_construct(_InIter __beg, _InIter __end, const _Alloc& __a,
_S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
forward_iterator_tag)
{
if (__beg == __end && __a == _Alloc())
return _S_empty_rep()._M_refcopy();
// NB: Not required, but considered best practice.
if (__builtin_expect(__beg == _InIter(), 0))
if (__builtin_expect(__beg == _InIterator(), 0))
__throw_logic_error("basic_string::_S_construct NULL not valid");
const size_type __dnew = static_cast<size_type>(std::distance(__beg, __end));
......@@ -234,9 +234,9 @@ namespace std
{ }
template<typename _CharT, typename _Traits, typename _Alloc>
template<typename _InputIter>
template<typename _InputIterator>
basic_string<_CharT, _Traits, _Alloc>::
basic_string(_InputIter __beg, _InputIter __end, const _Alloc& __a)
basic_string(_InputIterator __beg, _InputIterator __end, const _Alloc& __a)
: _M_dataplus(_S_construct(__beg, __end, __a), __a)
{ }
......@@ -613,11 +613,11 @@ namespace std
// for input iterators and reverse iterators. It buffers internally and then
// calls _M_replace_safe.
template<typename _CharT, typename _Traits, typename _Alloc>
template<typename _InputIter>
template<typename _InputIterator>
basic_string<_CharT, _Traits, _Alloc>&
basic_string<_CharT, _Traits, _Alloc>::
_M_replace(iterator __i1, iterator __i2, _InputIter __k1,
_InputIter __k2, input_iterator_tag)
_M_replace(iterator __i1, iterator __i2, _InputIterator __k1,
_InputIterator __k2, input_iterator_tag)
{
// Save concerned source string data in a temporary.
const basic_string __s(__k1, __k2);
......@@ -628,11 +628,11 @@ namespace std
// and can be used in "safe" situations involving forward iterators,
// i.e., when source and destination ranges are known to not overlap.
template<typename _CharT, typename _Traits, typename _Alloc>
template<typename _ForwardIter>
template<typename _ForwardIterator>
basic_string<_CharT, _Traits, _Alloc>&
basic_string<_CharT, _Traits, _Alloc>::
_M_replace_safe(iterator __i1, iterator __i2, _ForwardIter __k1,
_ForwardIter __k2)
_M_replace_safe(iterator __i1, iterator __i2, _ForwardIterator __k1,
_ForwardIterator __k2)
{
const size_type __dnew = static_cast<size_type>(std::distance(__k1, __k2));
const size_type __dold = __i2 - __i1;
......
......@@ -186,10 +186,10 @@ namespace std
}
template <typename _Tp, class _Alloc>
template <typename _InputIter>
template <typename _InputIterator>
void
deque<_Tp,_Alloc>
::_M_assign_aux(_InputIter __first, _InputIter __last, input_iterator_tag)
::_M_assign_aux(_InputIterator __first, _InputIterator __last, input_iterator_tag)
{
iterator __cur = begin();
for ( ; __first != __last && __cur != end(); ++__cur, ++__first)
......@@ -710,4 +710,3 @@ namespace std
} // namespace std
#endif /* __GLIBCPP_INTERNAL_DEQUE_TCC */
......@@ -160,10 +160,10 @@ namespace std
}
template<typename _Tp, typename _Alloc>
template <typename _InputIter>
template <typename _InputIterator>
void
list<_Tp,_Alloc>::
_M_assign_dispatch(_InputIter __first2, _InputIter __last2, __false_type)
_M_assign_dispatch(_InputIterator __first2, _InputIterator __last2, __false_type)
{
iterator __first1 = begin();
iterator __last1 = end();
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -575,8 +575,8 @@ template <typename _Alloc>
void _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)
{ _M_fill_assign((size_t) __n, (bool) __val); }
template <class _InputIter>
void _M_assign_dispatch(_InputIter __first, _InputIter __last, __false_type)
template <class _InputIterator>
void _M_assign_dispatch(_InputIterator __first, _InputIterator __last, __false_type)
{ _M_assign_aux(__first, __last, __iterator_category(__first)); }
template <class _InputIterator>
......
......@@ -1112,7 +1112,7 @@ namespace std
/**
* @brief Inserts a range into the %deque.
* @param pos An iterator into the %deque.
* @param position An iterator into the %deque.
* @param first An input iterator.
* @param last An input iterator.
*
......@@ -1122,11 +1122,11 @@ namespace std
*/
template<typename _InputIterator>
void
insert(iterator __pos, _InputIterator __first, _InputIterator __last)
insert(iterator __position, _InputIterator __first, _InputIterator __last)
{
// Check whether it's an integral type. If so, it's not an iterator.
typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
_M_insert_dispatch(__pos, __first, __last, _Integral());
_M_insert_dispatch(__position, __first, __last, _Integral());
}
/**
......@@ -1203,12 +1203,12 @@ namespace std
}
// called by the range constructor to implement [23.1.1]/9
template<typename _InputIter>
template<typename _InputIterator>
void
_M_initialize_dispatch(_InputIter __first, _InputIter __last,
_M_initialize_dispatch(_InputIterator __first, _InputIterator __last,
__false_type)
{
typedef typename iterator_traits<_InputIter>::iterator_category
typedef typename iterator_traits<_InputIterator>::iterator_category
_IterCategory;
_M_range_initialize(__first, __last, _IterCategory());
}
......@@ -1268,11 +1268,11 @@ namespace std
}
// called by the range assign to implement [23.1.1]/9
template<typename _InputIter>
template<typename _InputIterator>
void
_M_assign_dispatch(_InputIter __first, _InputIter __last, __false_type)
_M_assign_dispatch(_InputIterator __first, _InputIterator __last, __false_type)
{
typedef typename iterator_traits<_InputIter>::iterator_category
typedef typename iterator_traits<_InputIterator>::iterator_category
_IterCategory;
_M_assign_aux(__first, __last, _IterCategory());
}
......
......@@ -114,12 +114,12 @@ namespace std
return __distance(__first, __last, __iterator_category(__first));
}
template<typename _InputIter, typename _Distance>
template<typename _InputIterator, typename _Distance>
inline void
__advance(_InputIter& __i, _Distance __n, input_iterator_tag)
__advance(_InputIterator& __i, _Distance __n, input_iterator_tag)
{
// concept requirements
__glibcpp_function_requires(_InputIteratorConcept<_InputIter>)
__glibcpp_function_requires(_InputIteratorConcept<_InputIterator>)
while (__n--) ++__i;
}
......
......@@ -773,12 +773,12 @@ namespace std
* time, and does not invalidate iterators and references.
*/
void
insert(iterator __pos, size_type __n, const value_type& __x)
{ _M_fill_insert(__pos, __n, __x); }
insert(iterator __position, size_type __n, const value_type& __x)
{ _M_fill_insert(__position, __n, __x); }
/**
* @brief Inserts a range into the %list.
* @param pos An iterator into the %list.
* @param position An iterator into the %list.
* @param first An input iterator.
* @param last An input iterator.
*
......@@ -790,11 +790,11 @@ namespace std
*/
template<typename _InputIterator>
void
insert(iterator __pos, _InputIterator __first, _InputIterator __last)
insert(iterator __position, _InputIterator __first, _InputIterator __last)
{
// Check whether it's an integral type. If so, it's not an iterator.
typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
_M_insert_dispatch(__pos, __first, __last, _Integral());
_M_insert_dispatch(__position, __first, __last, _Integral());
}
/**
......@@ -968,9 +968,9 @@ namespace std
}
// called by the range assign to implement [23.1.1]/9
template<typename _InputIter>
template<typename _InputIterator>
void
_M_assign_dispatch(_InputIter __first, _InputIter __last, __false_type);
_M_assign_dispatch(_InputIterator __first, _InputIterator __last, __false_type);
// Called by assign(n,t), and the range assign when it turns out to be the
// same thing.
......
......@@ -271,7 +271,3 @@ inline void swap(multiset<_Key,_Compare,_Alloc>& __x,
} // namespace std
#endif /* __GLIBCPP_INTERNAL_MULTISET_H */
// Local Variables:
// mode:C++
// End:
......@@ -209,7 +209,3 @@ namespace std
} // namespace std
#endif /* _CPP_BITS_STL_NUMERIC_H */
// Local Variables:
// mode:C++
// End:
......@@ -135,7 +135,3 @@ inline bool operator>=(const _Tp& __x, const _Tp& __y) {
} // namespace std
#endif /* _CPP_BITS_STL_RELOPS_H */
// Local Variables:
// mode:C++
// End:
......@@ -268,7 +268,3 @@ inline void swap(set<_Key,_Compare,_Alloc>& __x,
} // namespace std
#endif /* __GLIBCPP_INTERNAL_SET_H */
// Local Variables:
// mode:C++
// End:
......@@ -208,7 +208,7 @@ namespace std
private:
void operator=(const _STL_auto_lock&);
_STL_auto_lock(const _STL_auto_lock&);
};
} __attribute__ ((__unused__));
} // namespace std
......
......@@ -68,20 +68,20 @@ namespace std
// uninitialized_copy
template<typename _InputIter, typename _ForwardIter>
inline _ForwardIter
__uninitialized_copy_aux(_InputIter __first, _InputIter __last,
_ForwardIter __result,
template<typename _InputIterator, typename _ForwardIterator>
inline _ForwardIterator
__uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
_ForwardIterator __result,
__true_type)
{ return copy(__first, __last, __result); }
template<typename _InputIter, typename _ForwardIter>
_ForwardIter
__uninitialized_copy_aux(_InputIter __first, _InputIter __last,
_ForwardIter __result,
template<typename _InputIterator, typename _ForwardIterator>
_ForwardIterator
__uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
_ForwardIterator __result,
__false_type)
{
_ForwardIter __cur = __result;
_ForwardIterator __cur = __result;
try {
for ( ; __first != __last; ++__first, ++__cur)
_Construct(&*__cur, *__first);
......@@ -103,11 +103,11 @@ namespace std
*
* Like copy(), but does not require an initialized output range.
*/
template<typename _InputIter, typename _ForwardIter>
inline _ForwardIter
uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result)
template<typename _InputIterator, typename _ForwardIterator>
inline _ForwardIterator
uninitialized_copy(_InputIterator __first, _InputIterator __last, _ForwardIterator __result)
{
typedef typename iterator_traits<_ForwardIter>::value_type _ValueType;
typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;
return __uninitialized_copy_aux(__first, __last, __result, _Is_POD());
}
......@@ -129,18 +129,18 @@ namespace std
// Valid if copy construction is equivalent to assignment, and if the
// destructor is trivial.
template<typename _ForwardIter, typename _Tp>
template<typename _ForwardIterator, typename _Tp>
inline void
__uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last,
__uninitialized_fill_aux(_ForwardIterator __first, _ForwardIterator __last,
const _Tp& __x, __true_type)
{ fill(__first, __last, __x); }
template<typename _ForwardIter, typename _Tp>
template<typename _ForwardIterator, typename _Tp>
void
__uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last,
__uninitialized_fill_aux(_ForwardIterator __first, _ForwardIterator __last,
const _Tp& __x, __false_type)
{
_ForwardIter __cur = __first;
_ForwardIterator __cur = __first;
try {
for ( ; __cur != __last; ++__cur)
_Construct(&*__cur, __x);
......@@ -161,31 +161,31 @@ namespace std
*
* Like fill(), but does not require an initialized output range.
*/
template<typename _ForwardIter, typename _Tp>
template<typename _ForwardIterator, typename _Tp>
inline void
uninitialized_fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __x)
uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __x)
{
typedef typename iterator_traits<_ForwardIter>::value_type _ValueType;
typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;
__uninitialized_fill_aux(__first, __last, __x, _Is_POD());
}
// Valid if copy construction is equivalent to assignment, and if the
// destructor is trivial.
template<typename _ForwardIter, typename _Size, typename _Tp>
inline _ForwardIter
__uninitialized_fill_n_aux(_ForwardIter __first, _Size __n,
template<typename _ForwardIterator, typename _Size, typename _Tp>
inline _ForwardIterator
__uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
const _Tp& __x, __true_type)
{
return fill_n(__first, __n, __x);
}
template<typename _ForwardIter, typename _Size, typename _Tp>
_ForwardIter
__uninitialized_fill_n_aux(_ForwardIter __first, _Size __n,
template<typename _ForwardIterator, typename _Size, typename _Tp>
_ForwardIterator
__uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
const _Tp& __x, __false_type)
{
_ForwardIter __cur = __first;
_ForwardIterator __cur = __first;
try {
for ( ; __n > 0; --__n, ++__cur)
_Construct(&*__cur, __x);
......@@ -207,11 +207,11 @@ namespace std
*
* Like fill_n(), but does not require an initialized output range.
*/
template<typename _ForwardIter, typename _Size, typename _Tp>
inline _ForwardIter
uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp& __x)
template<typename _ForwardIterator, typename _Size, typename _Tp>
inline _ForwardIterator
uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
{
typedef typename iterator_traits<_ForwardIter>::value_type _ValueType;
typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;
return __uninitialized_fill_n_aux(__first, __n, __x, _Is_POD());
}
......@@ -224,13 +224,13 @@ namespace std
// copies [first2, last2) into
// [result, result + (last1 - first1) + (last2 - first2)).
template<typename _InputIter1, typename _InputIter2, typename _ForwardIter>
inline _ForwardIter
__uninitialized_copy_copy(_InputIter1 __first1, _InputIter1 __last1,
_InputIter2 __first2, _InputIter2 __last2,
_ForwardIter __result)
template<typename _InputIterator1, typename _InputIterator2, typename _ForwardIterator>
inline _ForwardIterator
__uninitialized_copy_copy(_InputIterator1 __first1, _InputIterator1 __last1,
_InputIterator2 __first2, _InputIterator2 __last2,
_ForwardIterator __result)
{
_ForwardIter __mid = uninitialized_copy(__first1, __last1, __result);
_ForwardIterator __mid = uninitialized_copy(__first1, __last1, __result);
try {
return uninitialized_copy(__first2, __last2, __mid);
}
......@@ -244,11 +244,11 @@ namespace std
// __uninitialized_fill_copy
// Fills [result, mid) with x, and copies [first, last) into
// [mid, mid + (last - first)).
template<typename _ForwardIter, typename _Tp, typename _InputIter>
inline _ForwardIter
__uninitialized_fill_copy(_ForwardIter __result, _ForwardIter __mid,
template<typename _ForwardIterator, typename _Tp, typename _InputIterator>
inline _ForwardIterator
__uninitialized_fill_copy(_ForwardIterator __result, _ForwardIterator __mid,
const _Tp& __x,
_InputIter __first, _InputIter __last)
_InputIterator __first, _InputIterator __last)
{
uninitialized_fill(__result, __mid, __x);
try {
......@@ -264,13 +264,13 @@ namespace std
// __uninitialized_copy_fill
// Copies [first1, last1) into [first2, first2 + (last1 - first1)), and
// fills [first2 + (last1 - first1), last2) with x.
template<typename _InputIter, typename _ForwardIter, typename _Tp>
template<typename _InputIterator, typename _ForwardIterator, typename _Tp>
inline void
__uninitialized_copy_fill(_InputIter __first1, _InputIter __last1,
_ForwardIter __first2, _ForwardIter __last2,
__uninitialized_copy_fill(_InputIterator __first1, _InputIterator __last1,
_ForwardIterator __first2, _ForwardIterator __last2,
const _Tp& __x)
{
_ForwardIter __mid2 = uninitialized_copy(__first1, __last1, __first2);
_ForwardIterator __mid2 = uninitialized_copy(__first1, __last1, __first2);
try {
uninitialized_fill(__mid2, __last2, __x);
}
......@@ -284,7 +284,3 @@ namespace std
} // namespace std
#endif /* _CPP_BITS_STL_UNINITIALIZED_H */
// Local Variables:
// mode:C++
// End:
......@@ -650,12 +650,12 @@ namespace std
* consider using std::list.
*/
void
insert(iterator __pos, size_type __n, const value_type& __x)
{ _M_fill_insert(__pos, __n, __x); }
insert(iterator __position, size_type __n, const value_type& __x)
{ _M_fill_insert(__position, __n, __x); }
/**
* @brief Inserts a range into the %vector.
* @param pos An iterator into the %vector.
* @param position An iterator into the %vector.
* @param first An input iterator.
* @param last An input iterator.
*
......@@ -669,11 +669,11 @@ namespace std
*/
template<typename _InputIterator>
void
insert(iterator __pos, _InputIterator __first, _InputIterator __last)
insert(iterator __position, _InputIterator __first, _InputIterator __last)
{
// Check whether it's an integral type. If so, it's not an iterator.
typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
_M_insert_dispatch(__pos, __first, __last, _Integral());
_M_insert_dispatch(__position, __first, __last, _Integral());
}
/**
......@@ -780,12 +780,12 @@ namespace std
}
// Called by the range constructor to implement [23.1.1]/9
template<typename _InputIter>
template<typename _InputIterator>
void
_M_initialize_dispatch(_InputIter __first, _InputIter __last,
_M_initialize_dispatch(_InputIterator __first, _InputIterator __last,
__false_type)
{
typedef typename iterator_traits<_InputIter>::iterator_category
typedef typename iterator_traits<_InputIterator>::iterator_category
_IterCategory;
_M_range_initialize(__first, __last, _IterCategory());
}
......@@ -827,11 +827,11 @@ namespace std
}
// Called by the range assign to implement [23.1.1]/9
template<typename _InputIter>
template<typename _InputIterator>
void
_M_assign_dispatch(_InputIter __first, _InputIter __last, __false_type)
_M_assign_dispatch(_InputIterator __first, _InputIterator __last, __false_type)
{
typedef typename iterator_traits<_InputIter>::iterator_category
typedef typename iterator_traits<_InputIterator>::iterator_category
_IterCategory;
_M_assign_aux(__first, __last, _IterCategory());
}
......
......@@ -176,10 +176,10 @@ namespace std
erase(fill_n(begin(), __n, __val), end());
}
template<typename _Tp, typename _Alloc> template<typename _InputIter>
template<typename _Tp, typename _Alloc> template<typename _InputIterator>
void
vector<_Tp,_Alloc>::
_M_assign_aux(_InputIter __first, _InputIter __last, input_iterator_tag)
_M_assign_aux(_InputIterator __first, _InputIterator __last, input_iterator_tag)
{
iterator __cur(begin());
for ( ; __first != __last && __cur != end(); ++__cur, ++__first)
......@@ -190,10 +190,10 @@ namespace std
insert(end(), __first, __last);
}
template<typename _Tp, typename _Alloc> template<typename _ForwardIter>
template<typename _Tp, typename _Alloc> template<typename _ForwardIterator>
void
vector<_Tp,_Alloc>::
_M_assign_aux(_ForwardIter __first, _ForwardIter __last,
_M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
forward_iterator_tag)
{
size_type __len = std::distance(__first, __last);
......@@ -215,7 +215,7 @@ namespace std
}
else
{
_ForwardIter __mid = __first;
_ForwardIterator __mid = __first;
advance(__mid, size());
copy(__first, __mid, this->_M_start);
this->_M_finish = uninitialized_copy(__mid, __last, this->_M_finish);
......
......@@ -474,10 +474,10 @@ private:
}
// Check whether it's an integral type. If so, it's not an iterator.
template <class _InIter>
template <class _InIterator>
void _M_insert_after_range(_Node_base* __pos,
_InIter __first, _InIter __last) {
typedef typename _Is_integer<_InIter>::_Integral _Integral;
_InIterator __first, _InIterator __last) {
typedef typename _Is_integer<_InIterator>::_Integral _Integral;
_M_insert_after_range(__pos, __first, __last, _Integral());
}
......@@ -487,9 +487,9 @@ private:
_M_insert_after_fill(__pos, __n, __x);
}
template <class _InIter>
template <class _InIterator>
void _M_insert_after_range(_Node_base* __pos,
_InIter __first, _InIter __last,
_InIterator __first, _InIterator __last,
__false_type) {
while (__first != __last) {
__pos = __slist_make_link(__pos, _M_create_node(*__first));
......@@ -513,8 +513,8 @@ public:
// We don't need any dispatching tricks here, because _M_insert_after_range
// already does them.
template <class _InIter>
void insert_after(iterator __pos, _InIter __first, _InIter __last) {
template <class _InIterator>
void insert_after(iterator __pos, _InIterator __first, _InIterator __last) {
_M_insert_after_range(__pos._M_node, __first, __last);
}
......@@ -537,8 +537,8 @@ public:
// We don't need any dispatching tricks here, because _M_insert_after_range
// already does them.
template <class _InIter>
void insert(iterator __pos, _InIter __first, _InIter __last) {
template <class _InIterator>
void insert(iterator __pos, _InIterator __first, _InIterator __last) {
_M_insert_after_range(__slist_previous(&this->_M_head, __pos._M_node),
__first, __last);
}
......@@ -678,9 +678,9 @@ void slist<_Tp, _Alloc>::_M_fill_assign(size_type __n, const _Tp& __val) {
this->_M_erase_after(__prev, 0);
}
template <class _Tp, class _Alloc> template <class _InputIter>
template <class _Tp, class _Alloc> template <class _InputIterator>
void
slist<_Tp, _Alloc>::_M_assign_dispatch(_InputIter __first, _InputIter __last,
slist<_Tp, _Alloc>::_M_assign_dispatch(_InputIterator __first, _InputIterator __last,
__false_type)
{
_Node_base* __prev = &this->_M_head;
......
......@@ -698,7 +698,7 @@ namespace std
/**
* @brief Use a subset of a string.
* @param s A string of '0' and '1' characters.
* @param pos Index of the first character in @a s to use; defaults
* @param position Index of the first character in @a s to use; defaults
* to zero.
* @throw std::out_of_range If @a pos is bigger the size of @a s.
* @throw std::invalid_argument If a character appears in the string
......@@ -706,18 +706,18 @@ namespace std
*/
template<class _CharT, class _Traits, class _Alloc>
explicit bitset(const basic_string<_CharT, _Traits, _Alloc>& __s,
size_t __pos = 0) : _Base()
size_t __position = 0) : _Base()
{
if (__pos > __s.size())
if (__position > __s.size())
__throw_out_of_range("bitset::bitset initial position not valid");
_M_copy_from_string(__s, __pos,
_M_copy_from_string(__s, __position,
basic_string<_CharT, _Traits, _Alloc>::npos);
}
/**
* @brief Use a subset of a string.
* @param s A string of '0' and '1' characters.
* @param pos 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.
* @throw std::out_of_range If @a pos is bigger the size of @a s.
* @throw std::invalid_argument If a character appears in the string
......@@ -725,11 +725,11 @@ namespace std
*/
template<class _CharT, class _Traits, class _Alloc>
bitset(const basic_string<_CharT, _Traits, _Alloc>& __s,
size_t __pos, size_t __n) : _Base()
size_t __position, size_t __n) : _Base()
{
if (__pos > __s.size())
if (__position > __s.size())
__throw_out_of_range("bitset::bitset initial position not valid");
_M_copy_from_string(__s, __pos, __n);
_M_copy_from_string(__s, __position, __n);
}
// 23.3.5.2 bitset operations:
......@@ -765,16 +765,16 @@ namespace std
//@{
/**
* @brief Operations on bitsets.
* @param pos The number of places to shift.
* @param position The number of places to shift.
*
* These should be self-explanatory.
*/
bitset<_Nb>&
operator<<=(size_t __pos)
operator<<=(size_t __position)
{
if (__builtin_expect(__pos < _Nb, 1))
if (__builtin_expect(__position < _Nb, 1))
{
this->_M_do_left_shift(__pos);
this->_M_do_left_shift(__position);
this->_M_do_sanitize();
}
else
......@@ -783,11 +783,11 @@ namespace std
}
bitset<_Nb>&
operator>>=(size_t __pos)
operator>>=(size_t __position)
{
if (__builtin_expect(__pos < _Nb, 1))
if (__builtin_expect(__position < _Nb, 1))
{
this->_M_do_right_shift(__pos);
this->_M_do_right_shift(__position);
this->_M_do_sanitize();
}
else
......@@ -855,16 +855,16 @@ namespace std
/**
* @brief Sets a given bit to a particular value.
* @param pos The index of the bit.
* @param position The index of the bit.
* @param val Either true or false, defaults to true.
* @throw std::out_of_range If @a pos is bigger the size of the %set.
*/
bitset<_Nb>&
set(size_t __pos, bool __val = true)
set(size_t __position, bool __val = true)
{
if (__pos >= _Nb)
if (__position >= _Nb)
__throw_out_of_range(__N("bitset::set"));
return _Unchecked_set(__pos, __val);
return _Unchecked_set(__position, __val);
}
/**
......@@ -879,17 +879,17 @@ namespace std
/**
* @brief Sets a given bit to false.
* @param pos The index of the bit.
* @param position The index of the bit.
* @throw std::out_of_range If @a pos is bigger the size of the %set.
*
* Same as writing @c set(pos,false).
*/
bitset<_Nb>&
reset(size_t __pos)
reset(size_t __position)
{
if (__pos >= _Nb)
if (__position >= _Nb)
__throw_out_of_range(__N("bitset::reset"));
return _Unchecked_reset(__pos);
return _Unchecked_reset(__position);
}
/**
......@@ -905,15 +905,15 @@ namespace std
/**
* @brief Toggles a given bit to its opposite value.
* @param pos The index of the bit.
* @param position The index of the bit.
* @throw std::out_of_range If @a pos is bigger the size of the %set.
*/
bitset<_Nb>&
flip(size_t __pos)
flip(size_t __position)
{
if (__pos >= _Nb)
if (__position >= _Nb)
__throw_out_of_range(__N("bitset::flip"));
return _Unchecked_flip(__pos);
return _Unchecked_flip(__position);
}
/// See the no-argument flip().
......@@ -923,7 +923,7 @@ namespace std
//@{
/**
* @brief Array-indexing support.
* @param pos Index into the %bitset.
* @param position Index into the %bitset.
* @return A bool for a 'const %bitset'. For non-const bitsets, an
* instance of the reference proxy class.
* @note These operators do no range checking and throw no exceptions,
......@@ -938,10 +938,10 @@ namespace std
* @endif
*/
reference
operator[](size_t __pos) { return reference(*this,__pos); }
operator[](size_t __position) { return reference(*this,__position); }
bool
operator[](size_t __pos) const { return _Unchecked_test(__pos); }
operator[](size_t __position) const { return _Unchecked_test(__position); }
//@}
/**
......@@ -1007,16 +1007,16 @@ namespace std
/**
* @brief Tests the value of a bit.
* @param pos The index of a bit.
* @param position The index of a bit.
* @return The value at @a pos.
* @throw std::out_of_range If @a pos is bigger the size of the %set.
*/
bool
test(size_t __pos) const
test(size_t __position) const
{
if (__pos >= _Nb)
if (__position >= _Nb)
__throw_out_of_range(__N("bitset::test"));
return _Unchecked_test(__pos);
return _Unchecked_test(__position);
}
/**
......@@ -1036,12 +1036,12 @@ namespace std
//@{
/// Self-explanatory.
bitset<_Nb>
operator<<(size_t __pos) const
{ return bitset<_Nb>(*this) <<= __pos; }
operator<<(size_t __position) const
{ return bitset<_Nb>(*this) <<= __position; }
bitset<_Nb>
operator>>(size_t __pos) const
{ return bitset<_Nb>(*this) >>= __pos; }
operator>>(size_t __position) const
{ return bitset<_Nb>(*this) >>= __position; }
//@}
/**
......
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