This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
[PATCH] Further fixes for ext/iterator
- From: Paolo Carlini <pcarlini at unitus dot it>
- To: libstdc++ at gcc dot gnu dot org
- Cc: bkoz at redhat dot com
- Date: Mon, 31 Dec 2001 19:36:20 +0100
- Subject: [PATCH] Further fixes for ext/iterator
Hi again,
this is necessary if we want to allow the user to include ext/iterator by itself
(I think we want!)
Ok if it passes?
Cheers,
Paolo.
P.S. the last one for this year :-)
////////////////
2001-12-31 Paolo Carlini <pcarlini@unitus.it>
* include/ext/iterator: Add #include <bits/std_iterator.h>, tweak.
* testsuite/ext/headers.cc: Add <ext/iterator>.
diff -prN libstdc++-v3-orig/include/ext/iterator
libstdc++-v3/include/ext/iterator
*** libstdc++-v3-orig/include/ext/iterator Mon Dec 31 17:16:17 2001
--- libstdc++-v3/include/ext/iterator Mon Dec 31 19:19:20 2001
***************
*** 63,68 ****
--- 63,69 ----
#pragma GCC system_header
#include <bits/concept_check.h>
+ #include <bits/std_iterator.h>
namespace __gnu_cxx
{
*************** namespace __gnu_cxx
*** 74,80 ****
template<typename _InputIterator, typename _Distance>
inline void
__distance(_InputIterator __first, _InputIterator __last,
! _Distance& __n, input_iterator_tag)
{
// concept requirements
__glibcpp_function_requires(_InputIteratorConcept<_InputIterator>)
--- 75,81 ----
template<typename _InputIterator, typename _Distance>
inline void
__distance(_InputIterator __first, _InputIterator __last,
! _Distance& __n, std::input_iterator_tag)
{
// concept requirements
__glibcpp_function_requires(_InputIteratorConcept<_InputIterator>)
*************** namespace __gnu_cxx
*** 84,90 ****
template<typename _RandomAccessIterator, typename _Distance>
inline void
__distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
! _Distance& __n, random_access_iterator_tag)
{
// concept requirements
__glibcpp_function_requires(_RandomAccessIteratorConcept<_RandomAccessIterator>)
--- 85,91 ----
template<typename _RandomAccessIterator, typename _Distance>
inline void
__distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
! _Distance& __n, std::random_access_iterator_tag)
{
// concept requirements
__glibcpp_function_requires(_RandomAccessIteratorConcept<_RandomAccessIterator>)
*************** namespace __gnu_cxx
*** 97,103 ****
_Distance& __n)
{
// concept requirements -- taken care of in __distance
! __distance(__first, __last, __n, __iterator_category(__first));
}
} // namespace __gnu_cxx
--- 98,104 ----
_Distance& __n)
{
// concept requirements -- taken care of in __distance
! __distance(__first, __last, __n, std::__iterator_category(__first));
}
} // namespace __gnu_cxx
diff -prN libstdc++-v3-orig/testsuite/ext/headers.cc
libstdc++-v3/testsuite/ext/headers.cc
*** libstdc++-v3-orig/testsuite/ext/headers.cc Fri Dec 28 19:46:53 2001
--- libstdc++-v3/testsuite/ext/headers.cc Mon Dec 31 18:46:22 2001
***************
*** 26,31 ****
--- 26,32 ----
#include <ext/algorithm>
#include <ext/hash_map>
#include <ext/hash_set>
+ #include <ext/iterator>
#include <ext/rope>
#include <ext/slist>