Hi Pavol, I haven't been following this thread so please forgive me if
I'm just pointing out something stupid, or problems that you already
know. I had a quick glance at the library and I'm a little confused at
what is its scope. For instance the "is space" generalization makes in
fact functions like trim() and the like generic algorithms that remove
a given element (or its equivalents) from the beginning and the end of
a sequence. At this point either you make clear that the library isn't
specifically a "string library" or that isspaceF is actually a generic
functor that can test whatever charT you like (and change its name at
least).


>Trimming:
>
>   Iterator trim_begin( Iterator InBegin, Iterator InEnd, const std::locale& 
>Loc=std::locale() )
>   Seq ltrim( const Seq& Input, const std::locale& Loc=std::locale() )
>   Seq& ltrim_in( Seq& Input, const std::locale& Loc=std::locale() )
>   Seq rtrim( const Seq& Input, const std::locale& Loc=std::locale() )
>   Seq& rtrim_in( Seq& Input, const std::locale& Loc=std::locale() )
>   Seq trim( const Seq& Input, const std::locale& Loc=std::locale() )
>   Seq& trim_in( Seq& Input, const std::locale& Loc=std::locale() )

This is in accordance with my confusion :-) What has a locale to do
with a generic sequence? If I imagine a generalized trim function
(say, a function that removes all the odd numbers from the beginning
and the end of a vector<int>) I imagine, type requirements about the
iterators etc. aside, signatures like:

    template <typename Iterator, typename Elem>
    Iterator trim (Iterator start, Iterator end, Elem const &);

    template <typename Iterator, typename Pred>
    Iterator trim (Iterator start, Iterator end, Pred pred);


It seems that either the design is seriously flawed or (more likely)
I'm missing something.

Genny.


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to