|
Boost : |
From: Dirk Gregorius (dirk_at_[hidden])
Date: 2004-10-16 08:53:37
Hi there,
> I'm not very good at explaining the things in short, but I'll try.
thanks for the explanation. I think I got it and it was not as bad as you
maybe think.
To come back to the initial problem of string tokenizing. I am trying to
implement the finder in terms
of ForwardIteratorT. Here is what I think I am expecting to do - also
actually I am not very sure about it.
I justed started to read M. Austern's book and I am quite new to concepts,
requirements and so on.
So here is what I did so far:
struct comment_finder
{
template<typename ForwardIteratorT>
boost::iterator_range<ForwardIteratorT> operator()( ForwardIteratorT Begin,
ForwardIteratorT End )
{
ForwardIteratorT first, last;
while ( Begin != End )
{
first = Begin;
if ( *Begin++ == '/' && *Begin == '/' )
{
last = first;
while ( *last++ != '\n' )
{
// FAILURE: Return an empty range
if ( last == End )
return boost::make_range( ??, ?? ); // return an empty range - HOW?
}
// SUCCESS: Return the range
return boost::make_range( first, last + 1 );
}
}
return boost::make_range( ??, ?? ); // return an empty range - HOW?
}
};
Is this the way I have to implement the finder or can it be implemented
using some facilities in your library?
This implementation is quite low-level, so I am wondering if this is
correct.
Secondly, for the case this is correct, how should I return an empty range
or what shall I return if didn't find a
matching range?
What are the following steps? Do I have to split two time times or how do I
erase the comments out of the string?
Will the final token iterator be only of ForwardIteratorT or will be of the
type of the conatiner that is
holding the tokens. ( e.g. for a vector it would be a randow access
iterator? )
Sorry for the inconvinience and thanks for the help so far.
-Dirk
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk