|
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