toon-members
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Toon-members] tag/tag fn.h


From: Edward Rosten
Subject: [Toon-members] tag/tag fn.h
Date: Mon, 16 Jul 2007 23:13:50 +0000

CVSROOT:        /cvsroot/toon
Module name:    tag
Changes by:     Edward Rosten <edrosten>        07/07/16 23:13:50

Modified files:
        tag            : fn.h 

Log message:
        Make member_iterator work with pointers (which are valud iterators) by 
using
        the std::iterator_traits class.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/tag/tag/fn.h?cvsroot=toon&r1=1.5&r2=1.6

Patches:
Index: fn.h
===================================================================
RCS file: /cvsroot/toon/tag/tag/fn.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- fn.h        24 Jan 2007 03:10:02 -0000      1.5
+++ fn.h        16 Jul 2007 23:13:49 -0000      1.6
@@ -162,14 +162,14 @@
 template <typename It, typename m>
 struct member_iterator_t {
 
-    typedef typename It::value_type ParentValue;
+    typedef typename std::iterator_traits<It>::value_type ParentValue;
 
     // iterator defines
-    typedef typename It::iterator_category iterator_category;
+    typedef typename std::iterator_traits<It>::iterator_category 
iterator_category;
     typedef m value_type;
-    typedef typename It::difference_type difference_type;
-    typedef typename Internal::forward_const<typename It::pointer, m 
*>::value_type pointer;
-    typedef typename Internal::forward_const<typename It::reference, m 
&>::value_type reference;
+    typedef typename std::iterator_traits<It>::difference_type difference_type;
+    typedef typename Internal::forward_const<typename 
std::iterator_traits<It>::pointer, m *>::value_type pointer;
+    typedef typename Internal::forward_const<typename 
std::iterator_traits<It>::reference, m &>::value_type reference;
 
     It iterator;
     m ParentValue::*data;
@@ -257,7 +257,7 @@
 @endcode
 */
 template <typename It, typename m>
-inline struct member_iterator_t<It, m> member_iterator( const It & it, m 
It::value_type::*d ){
+inline struct member_iterator_t<It, m> member_iterator( const It & it, m 
std::iterator_traits<It>::value_type::*d ){
     return member_iterator_t<It, m>(it, d);
 }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]