[uClibc-cvs] CVS uClibc++/include
CVS User gkajmowi
gkajmowi at codepoet.org
Thu Jan 6 00:03:07 UTC 2005
Update of /var/cvs/uClibc++/include
In directory nail:/tmp/cvs-serv26653
Modified Files:
ios iterator_base map set
Log Message:
Fix map iterator overloading class definion
Fix map iterator returning value not reference
Change tests to check changes
Change ios::operator() to return 1 instead of this. This deals with a situation where the object is const.
--- /var/cvs/uClibc++/include/ios 2005/01/05 21:48:38 1.9
+++ /var/cvs/uClibc++/include/ios 2005/01/06 00:03:06 1.10
@@ -290,7 +290,7 @@
if(fail() ){
return 0;
}
- return this; //Must return a non-NULL pointer (though it can be *any* pointer)
+ return (void *)(1); //Must return a non-NULL pointer (though it can be *any* pointer)
}
bool operator!() const{
--- /var/cvs/uClibc++/include/iterator_base 2004/09/10 04:27:17 1.2
+++ /var/cvs/uClibc++/include/iterator_base 2005/01/06 00:03:06 1.3
@@ -141,16 +141,16 @@
Iterator base() const { return current; } // explicit
- typename iterator_traits<Iterator>::reference operator*() const { Iterator tmp = current; return *--tmp;}
- typename iterator_traits<Iterator>::pointer operator->() const { Iterator tmp = current; return *--tmp;}
+ typename iterator_traits<Iterator>::reference operator*() const { Iterator tmp = current; return *--tmp; }
+ typename iterator_traits<Iterator>::pointer operator->() const { return &(operator*()); }
typename iterator_traits<Iterator>::reference operator[](typename iterator_traits<Iterator>::difference_type n) const{
return current[-n-1];
}
reverse_iterator& operator++(){ --current; return *this; }
- reverse_iterator operator++(int) {reverse_iterator tmp = *this; --current; return tmp; }
+ reverse_iterator operator++(int) {reverse_iterator tmp = current; --current; return tmp; }
reverse_iterator& operator--() { ++ current; return *this; }
- reverse_iterator operator--(int) {reverse_iterator tmp = *this; ++current; return tmp; }
+ reverse_iterator operator--(int) {reverse_iterator tmp = current; ++current; return tmp; }
reverse_iterator operator+ (typename iterator_traits<Iterator>::difference_type n) const{
reverse_iterator retval( *this );
--- /var/cvs/uClibc++/include/map 2005/01/03 16:28:46 1.6
+++ /var/cvs/uClibc++/include/map 2005/01/06 00:03:06 1.7
@@ -114,10 +114,10 @@
template<class Key, class T, class Compare, class Allocator> class __map_iter
: public std::iterator<
bidirectional_iterator_tag,
- T,
+ std::pair<Key, T>,
typename Allocator::difference_type,
- typename Allocator::pointer,
- typename Allocator::reference
+ std::pair<Key, T>*,
+ std::pair<Key, T>&
>
{
protected:
@@ -140,7 +140,7 @@
: element(e), container(c) { }
~__map_iter() { }
- typename Map::value_type operator*(){
+ typename Map::value_type & operator*(){
return container->data[element];
}
typename Map::value_type * operator->(){
@@ -182,10 +182,10 @@
template<class Key, class T, class Compare, class Allocator> class __map_citer
: public std::iterator<
bidirectional_iterator_tag,
- T,
+ std::pair<Key, T>,
typename Allocator::difference_type,
- typename Allocator::pointer,
- typename Allocator::reference
+ std::pair<Key, T>*,
+ std::pair<Key, T>&
>
{
protected:
@@ -208,7 +208,7 @@
: element(e), container(c) { }
~__map_citer() { }
- typename Map::value_type operator*(){
+ typename Map::value_type & operator*(){
return container->data[element];
}
const typename Map::value_type * operator->(){
--- /var/cvs/uClibc++/include/set 2005/01/03 16:28:46 1.4
+++ /var/cvs/uClibc++/include/set 2005/01/06 00:03:06 1.5
@@ -138,7 +138,7 @@
: element(e), container(c) { }
~__set_iter() { }
- typename Set::value_type operator*(){
+ typename Set::value_type & operator*(){
return container->data[element];
}
typename Set::value_type * operator->(){
@@ -206,7 +206,7 @@
: element(e), container(c) { }
~__set_citer() { }
- typename Set::value_type operator*(){
+ typename Set::value_type & operator*(){
return container->data[element];
}
const typename Set::value_type * operator->(){
More information about the uClibc-cvs
mailing list