public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: libstdc++/4537: reverse_iterator has a member called `current' available
@ 2001-10-20 19:03 rodrigc
  0 siblings, 0 replies; 2+ messages in thread
From: rodrigc @ 2001-10-20 19:03 UTC (permalink / raw)
  To: brendan, gcc-bugs, gcc-prs, nobody

Synopsis: reverse_iterator has a member called `current' available

State-Changed-From-To: open->closed
State-Changed-By: rodrigc
State-Changed-When: Sat Oct 20 19:03:52 2001
State-Changed-Why:
    Patch applied.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=4537&database=gcc


^ permalink raw reply	[flat|nested] 2+ messages in thread

* libstdc++/4537: reverse_iterator has a member called `current' available
@ 2001-10-11  7:06 brendan
  0 siblings, 0 replies; 2+ messages in thread
From: brendan @ 2001-10-11  7:06 UTC (permalink / raw)
  To: gcc-gnats

>Number:         4537
>Category:       libstdc++
>Synopsis:       reverse_iterator has a member called `current' available
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Oct 11 07:06:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Brendan Kehoe
>Release:        CVS tree
>Organization:
>Environment:

>Description:
In stl_iterator, reverse_iterator is set up with a member _M_current not intended for use.  However, the standard says in $24.4.1.1 that the member `current' is defined to exist.

The attached patch replaces uses of _M_current in reverse_iterator with `current'.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="diffs-iterator.txt"
Content-Disposition: inline; filename="diffs-iterator.txt"

2001-10-10  Brendan Kehoe  <brendan@zen.org>

	* include/bits/stl_iterator.h (reverse_iterator::current): Rename
	member from _M_current, and change all uses; thus sayeth $24.4.1.1.

Index: include/bits/stl_iterator.h
===================================================================
RCS file: /cvs/gcc/egcs/libstdc++-v3/include/bits/stl_iterator.h,v
retrieving revision 1.13
diff -u -p -r1.13 stl_iterator.h
--- stl_iterator.h	2001/07/20 00:09:31	1.13
+++ stl_iterator.h	2001/10/10 11:44:32
@@ -72,7 +72,7 @@ namespace std
                         typename iterator_traits<_Iterator>::reference>
     {
     protected:
-      _Iterator _M_current;
+      _Iterator current;
 
     public:
       typedef _Iterator 				       iterator_type;
@@ -85,22 +85,22 @@ namespace std
       reverse_iterator() {}
 
       explicit 
-      reverse_iterator(iterator_type __x) : _M_current(__x) {}
+      reverse_iterator(iterator_type __x) : current(__x) {}
 
       reverse_iterator(const reverse_iterator& __x) 
-	: _M_current(__x._M_current) { }
+	: current(__x.current) { }
 
       template<typename _Iter>
         reverse_iterator(const reverse_iterator<_Iter>& __x)
-	: _M_current(__x.base()) {}
+	: current(__x.base()) {}
     
       iterator_type 
-      base() const { return _M_current; }
+      base() const { return current; }
 
       reference 
       operator*() const 
       {
-	_Iterator __tmp = _M_current;
+	_Iterator __tmp = current;
 	return *--__tmp;
       }
 
@@ -110,7 +110,7 @@ namespace std
       reverse_iterator& 
       operator++() 
       {
-	--_M_current;
+	--current;
 	return *this;
       }
 
@@ -118,38 +118,38 @@ namespace std
       operator++(int) 
       {
 	reverse_iterator __tmp = *this;
-	--_M_current;
+	--current;
 	return __tmp;
       }
 
       reverse_iterator& 
       operator--() 
       {
-	++_M_current;
+	++current;
 	return *this;
       }
 
       reverse_iterator operator--(int) 
       {
 	reverse_iterator __tmp = *this;
-	++_M_current;
+	++current;
 	return __tmp;
       }
       
       reverse_iterator 
       operator+(difference_type __n) const 
-      { return reverse_iterator(_M_current - __n); }
+      { return reverse_iterator(current - __n); }
 
       reverse_iterator& 
       operator+=(difference_type __n) 
       {
-	_M_current -= __n;
+	current -= __n;
 	return *this;
       }
 
       reverse_iterator 
       operator-(difference_type __n) const 
-      { return reverse_iterator(_M_current + __n); }
+      { return reverse_iterator(current + __n); }
 
       reverse_iterator& 
       operator-=(difference_type __n) 
@@ -225,7 +225,7 @@ namespace std
       back_insert_iterator(_Container& __x) : container(&__x) {}
 
       back_insert_iterator&
-      operator=(const typename _Container::const_reference __value) 
+      operator=(typename _Container::const_reference __value) 
       { 
 	container->push_back(__value);
 	return *this;
@@ -259,7 +259,7 @@ namespace std
       explicit front_insert_iterator(_Container& __x) : container(&__x) {}
 
       front_insert_iterator&
-      operator=(const typename _Container::const_reference __value) 
+      operator=(typename _Container::const_reference __value) 
       { 
 	container->push_front(__value);
 	return *this;


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2001-10-20 19:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-10-20 19:03 libstdc++/4537: reverse_iterator has a member called `current' available rodrigc
  -- strict thread matches above, loose matches on Subject: below --
2001-10-11  7:06 brendan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).