This is the mail archive of the libstdc++-prs@sourceware.cygnus.com mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

libstdc++/37: Both reverse_iterators in multiset are typedef'ed to const_reverse_iterator



>Number:         37
>Category:       libstdc++
>Synopsis:       Both reverse_iterators in multiset are typedef'ed to const_reverse_iterator
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Feb 25 10:16:59 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     rparnall@v-wave.com
>Release:        unknown-1.0
>Organization:
>Environment:
gcc version 2.95.2 19991024 (release)
>Description:
from stl_multiset.h:
typedef typename _Rep_type::const_reverse_iterator reverse_iterator;
typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;

stl_set.h is the same.

I believe the first one of the pair should be _Rep_type::reverse_iterator.
>How-To-Repeat:
#include <multiset.h>
class X 
{
public:
    int	x;
    int	GetX();
};

typedef multiset<X> XSet;
typedef XSet::reverse_iterator XIterator;
    
int main() 
{
    XSet a;
    XIterator b;
    for (b = a.rbegin(); b != a.rend(); b++) {
	cout << b->GetX();
    }  
}

results in
 passing `const X' as `this' argument of `int X::GetX()' discards qualifiers
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]