From 28341cc80f46eb43283b74a4d0cf64144067bfc4 Mon Sep 17 00:00:00 2001 From: gdr Date: Tue, 26 Jun 2001 06:36:33 +0000 Subject: [PATCH] * include/bits/stl_iterator.h (__normal_iterator<>): Qualify dependent names with `typename'. Bring in various required iterator_traits members. Can't imagine why that used to work. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43568 138bc75d-0d04-0410-961f-82ee72b054a4 --- libstdc++-v3/ChangeLog | 6 ++++++ libstdc++-v3/include/bits/stl_iterator.h | 18 ++++++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index af4453e6335..5bd0669349f 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2001-06-26 Gabriel Dos Reis + + * include/bits/stl_iterator.h (__normal_iterator<>): Qualify + dependent names with `typename'. Bring in various required + iterator_traits members. Can't imagine why that used to work. + 2001-06-25 Phil Edwards Kurt Garloff diff --git a/libstdc++-v3/include/bits/stl_iterator.h b/libstdc++-v3/include/bits/stl_iterator.h index 148cad6a184..7127a21b5bd 100644 --- a/libstdc++-v3/include/bits/stl_iterator.h +++ b/libstdc++-v3/include/bits/stl_iterator.h @@ -443,18 +443,24 @@ private: // _Iterator parameter is the same. template class __normal_iterator - : public iterator::iterator_category, - iterator_traits<_Iterator>::value_type, - iterator_traits<_Iterator>::difference_type, - iterator_traits<_Iterator>::pointer, - iterator_traits<_Iterator>::reference> + : public iterator::iterator_category, + typename iterator_traits<_Iterator>::value_type, + typename iterator_traits<_Iterator>::difference_type, + typename iterator_traits<_Iterator>::pointer, + typename iterator_traits<_Iterator>::reference> { - + typedef iterator_traits<_Iterator> _Traits; + protected: _Iterator _M_current; public: typedef __normal_iterator<_Iterator, _Container> normal_iterator_type; + typedef typename _Traits::iterator_category iterator_category; + typedef typename _Traits::value_type value_type; + typedef typename _Traits::difference_type difference_type; + typedef typename _Traits::pointer pointer; + typedef typename _Traits::reference reference; __normal_iterator() : _M_current(_Iterator()) { } -- 2.11.4.GIT