This is the mail archive of the
libstdc++-prs@sourceware.cygnus.com
mailing list for the libstdc++ project.
libstdc++/37: Both reverse_iterators in multiset are typedef'ed to const_reverse_iterator
- To: libstdc++-gnats at sourceware dot cygnus dot com
- Subject: libstdc++/37: Both reverse_iterators in multiset are typedef'ed to const_reverse_iterator
- From: rparnall at v-wave dot com
- Date: 25 Feb 2000 18:16:51 -0000
- Reply-To: rparnall at v-wave dot com
- Resent-Cc: libstdc++-prs at sourceware dot cygnus dot com
- Resent-Reply-To: libstdc++-gnats@sourceware.cygnus.com, rparnall@v-wave.com
>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: