"Vincent Finn" <[EMAIL PROTECTED]> wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > Alexei Novakov wrote: > > "Vincent Finn" <[EMAIL PROTECTED]> wrote in message > > [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > > > >>Forwarded to main Boost list - that's the more appropriate venue for > >>discussions of possible additions. > >> > >>-- Jim Hyslop boost-users moderator. > >> > >> > -----Original Message----- > >> > From: alexei_novakov [mailto:[EMAIL PROTECTED]] > >> > Sent: Monday, November 18, 2002 7:05 PM > >> > To: [EMAIL PROTECTED] > >> > Subject: [Boost-Users] Possible boost addition: sub string and const > >> > string. > >> > > >> > > >> > Hello everyone. > >> > > >> > I have two classes which I found pretty handy: sub_string (behaves as > >> > a mirror of the portion of master basic_string) and const_string (C- > >> > string wrapper). Nice thing about these two is they implemented as > >> > template specialization of basic_string which has advantages: > >> > a) familiar interface; > >> > b) possibility to reuse the code written for basic_string (like > >> > string streams, lexical casts, etc). > >> > > >> > Any interest? > >> > > >> > Regards. > >> > > >> > Alexei Novakov > >> > >>Sounds interesting, like slice on a valarray > >> > >>When I have to do a lot of manipulation of sub string and can't afford > >>to copy back and forward I normally resort to using vector<char>; this > >>sounds a lot handier > >> > >>How does it work ? > >> > >>Vin > >> > > > > > > The idea is simple. Sub string is declared as basic_string template > > specialization: > > > > template <typename CHAR, typename TRAITS, typename ALLOCATOR> > > class basic_string<CHAR, TRAITS, basic_string<CHAR, TRAITS, ALLOCATOR> > > > > > The interfase is the same as for basic_string (except constructors). Sub > > string instances contain reference to master string and boundaries (start > > and size). One can use it like this: > > > > // Start > > typedef basic_string<string::value_type, string::traits_type, string> > > sub_string; > > > > string str("1234567890"); > > sub_string ss(str, 2, 5); // master string, start position, size > > > > assert(lexical_cast<int>(ss) == 34567); > > > > ss = "$$"; > > > > assert(str == "12$$890"); > > // End > > > > All the basic_string operators (like +, ==, !=, <, >, <=, >=) are overloaded > > to be used for both strings and sub strings. > > > > Similar approach is used for const_string (C string wrapper), but only const > > methods of basic_string are implemented. > > > > Alexei. > > Cool, I'd definitely use it > Seeing as there is a move to submit a library of string helpers at the > moment it might be worth submitting this at the same time! > > Vin >
I think that these two libs (sub_string and string_algo) could benefit from each other. How do I share the code so that members could see it and try it? Alexei. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost