Boost logo

Boost :

From: David Whetstone (mr.fixit_at_[hidden])
Date: 2006-01-12 23:47:57


Well, it seems I've answered my own question. The similarity of the
interface to std::basic_string led me to believe that what I was
attempting was possible. But the fundamental difference is that
basic_string _is_ a container of characters (the type returned when its
iterators are dereferenced), but basic_path only _pretends to be_ a
container of path elements (strings) which is what is returned when its
iterators are dereferenced.

Might I humbly suggest something along the lines of the following?

   template<class String, class Traits>
     basic_path<String, Traits> & basic_path<String, Traits>::append(
       iterator first, iterator last )
   {
     assert( first.m_path_ptr == last.m_path_ptr );
     m_path.append( first.m_path_ptr->m_path.begin() + first.m_pos,
                    last.m_path_ptr->m_path.begin() + last.m_pos );
     return *this;
   }

Declared in the class thus:

   class iterator;
   basic_path & append( iterator first, iterator last );


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk