This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the EGCS project.


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

Potential bug in STL


	Given the attached .c file, I get the attached errors.  I'm not
	using a const int anywhere.  This code worked in previous
	versions of g++.

	- Paul J. Lucas
	  Applications Engineer
	  Liquid Audio, Inc.
#include <algorithm>
#include <vector>
#include <map>

typedef map< int, int > result_type;

struct sort_by_rank {
	bool operator()(
		result_type::value_type const &a,
		result_type::value_type const &b
	) {
		return a.second > b.second;
	}
};

main() {
	typedef vector< result_type::value_type > sorted_result_type;
	sorted_result_type sorted;
	::sort( sorted.begin(), sorted.end(), sort_by_rank() );
}
/usr/local/packages/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/../../../../include/g++-3/stl_heap.h: In method `struct pair<const int,int> & pair<const int,int>::operator =(const pair<const int,int> &)':
/usr/local/packages/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/../../../../include/g++-3/stl_heap.h:164:   instantiated from `__adjust_heap<pair<const int,int> *, int, pair<const int,int>, sort_by_rank>(pair<const int,int> *, int, int, pair<const int,int>, sort_by_rank)'
/usr/local/packages/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/../../../../include/g++-3/stl_heap.h:240:   instantiated from `__make_heap<pair<const int,int> *, sort_by_rank, pair<const int,int>, ptrdiff_t>(pair<const int,int> *, pair<const int,int> *, sort_by_rank, pair<const int,int> *, ptrdiff_t *)'
/usr/local/packages/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/../../../../include/g++-3/stl_heap.h:252:   instantiated from `make_heap<pair<const int,int> *, sort_by_rank>(pair<const int,int> *, pair<const int,int> *, sort_by_rank)'
/usr/local/packages/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/../../../../include/g++-3/stl_algo.h:1580:   instantiated from `__partial_sort<pair<const int,int> *, pair<const int,int>, sort_by_rank>(pair<const int,int> *, pair<const int,int> *, pair<const int,int> *, pair<const int,int> *, sort_by_rank)'
/usr/local/packages/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/../../../../include/g++-3/stl_algo.h:1592:   instantiated from `partial_sort<pair<const int,int> *, sort_by_rank>(pair<const int,int> *, pair<const int,int> *, pair<const int,int> *, sort_by_rank)'
/usr/local/packages/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/../../../../include/g++-3/stl_algo.h:1300:   instantiated from `__introsort_loop<pair<const int,int> *, pair<const int,int>, int, sort_by_rank>(pair<const int,int> *, pair<const int,int> *, pair<const int,int> *, int, sort_by_rank)'
/usr/local/packages/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/../../../../include/g++-3/stl_algo.h:1332:   instantiated from here
/usr/local/packages/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/../../../../include/g++-3/stl_heap.h:164: non-static const member `const int pair<const int,int>::first', can't use default assignment operator

bug.ii.gz


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