$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Jeremy Siek (jsiek_at_[hidden])
Date: 2005-01-17 10:48:28
Perhaps you should trying following the node_iter example.
http://www.boost.org/libs/iterator/doc/iterator_adaptor.html
On Jan 16, 2005, at 8:58 PM, Felipe Magno de Almeida wrote:
> I´ve tried with iterator_adaptor either in this way: (the class  
> template xml_basic_node continues the same)
> and the iterator becomes:
>
> template <class value>
> class xml_iterator : public boost::iterator_adaptor  
> <xml_iterator<value>, value>
> {
>   public:
>   explicit xml_iterator(value node)
>     : xml_iterator::iterator_adaptor_(node)
>   {}
> private:
>   friend class boost::iterator_core_access;
>
>   value &dereference() const {
>     return base_reference();
>   }
> };
>
> and it gives me the same error...
> I just cant figure out how to make a mutable iterator with the boost  
> library...
>
>
> Jeremy Graham Siek wrote:
>> Hi Felipe,
>> The counting_iterator is not meant to be used for creating mutable   
>> iterators.
>> You should use iterator_adaptor instead.
>> Cheers,
>> Jeremy
>> On Jan 16, 2005, at 1:50 AM, Felipe Magno de Almeida wrote:
>>> I'm trying to create an iterator from a class that is almost an   
>>> iterator, it worked fine for const iterator with counting_iterator,   
>>> but when I needed to dereference it, it complained about this:
>>> error C2440: 'return' : cannot convert from 'const   
>>> xmlmanager::xml_basic_node<T>' to  'boost::  
>>> iterator_facade<Derived,Value,CategoryOrTraversal,Reference,Differenc 
>>> e> ::reference'
>>> I think it is because it is still a const iterator...
>>> But I need a mutable iterator, and I have no clue in how to do it...  
>>>  I've tried the documentation, but it just explains what it is, but  
>>> not  ho to do it. The way I'm doing the iterator is:
>>>
>>> template <typename T>
>>> class xml_basic_node : public xml_basic_container<T>,
>>>     public  boost::iterator<boost::iterator_archetypes::  
>>> readable_lvalue_iterator_t, xml_basic_node<T> >
>>> {
>>> public:
>>>     // some specifics constructors
>>>
>>>     bool operator == (xml_basic_node<T> const &n) const
>>>     {
>>>         // compares equality
>>>     }
>>>
>>>     xml_basic_node<T> &operator ++()
>>>     {
>>>         // advances...
>>>         return *this;               }
>>> };   and the iterator through counting_iterator:
>>> template <typename T>
>>> class acontainer {
>>>     typedef boost::counting_iterator<xml_basic_node<T> > iterator;
>>> };
>>>
>>> If someone could, please point me where I am getting wrong... I am   
>>> days already trying to figure out how to do it...
>>>
>>> Sorry for the size of the mail and thanks in advance.
>>>
>>> -- 
>>>    Felipe Magno de Almeida
>>>    UIN: 2113442
>>>     email: felipe.almeida_at_ic unicamp br, felipe.m.almeida_at_gmail com
>>> I am a C, modern C++, MFC, ODBC, Windows Services, MAPI developer
>>> from synergy, and Computer Science student from State
>>> University of Campinas(UNICAMP).
>>> To know more about:
>>> Unicamp: http://www.ic.unicamp.br
>>> Synergy: http://www.synergy.com.br
>>> current work: http://www.mintercept.com
>>> _______________________________________________
>>> Boost-users mailing list
>>> Boost-users_at_[hidden]
>>> http://listarchives.boost.org/mailman/listinfo.cgi/boost-users
>>>
>> _______________________________________________
>> Jeremy Siek <jsiek_at_[hidden]>
>> http://www.osl.iu.edu/~jsiek
>> Ph.D. Candidate, Indiana University Bloomington
>> C++ Booster (http://www.boost.org)
>> _______________________________________________
>> _______________________________________________
>> Boost-users mailing list
>> Boost-users_at_[hidden]
>> http://listarchives.boost.org/mailman/listinfo.cgi/boost-users
>
> -- 
>    Felipe Magno de Almeida
>    UIN: 2113442
>     email: felipe.almeida_at_ic unicamp br, felipe.m.almeida_at_gmail com
> I am a C, modern C++, MFC, ODBC, Windows Services, MAPI developer
> from synergy, and Computer Science student from State
> University of Campinas(UNICAMP).
> To know more about:
> Unicamp: http://www.ic.unicamp.br
> Synergy: http://www.synergy.com.br
> current work: http://www.mintercept.com
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://listarchives.boost.org/mailman/listinfo.cgi/boost-users
>
_______________________________________________
Jeremy Siek <jsiek_at_[hidden]>
http://www.osl.iu.edu/~jsiek
Ph.D. Student, Indiana University Bloomington
C++ Booster (http://www.boost.org)
_______________________________________________