Re: Cleverly extending the std::string class
On 19 Mar., 19:58, Giuliano Bertoletti <gbe32...@libero.it> wrote:
Hello,
just wondering if there's a clever way to extend the functionality of
std::string (without using boost).
Newer programming languages like python do have a lot of functionality
associated with strings, which may be handy in C++.
For example lowercasing and uppercasing the string.
Extracting the last element by subscripting -1, or the last say four
chars using [-4:-1] are also desirable.
These functionalities could be accomodated by proper function calls.
If I derive a class from std::string I have all the std::string member
functions return the base class and not the derived class.
So for example I would have to write:
std::string p = "test";
std::string q = ((MYSTRING)p).lower()
while I would prefer to work only with MYSTRING.
MYSTRING p;
MYSTRING q = p.lower();
but then if I call:
q = p.substr(0,4)
substr returns an std::string and not a MYSTRING.
Is this the wrong place where to use inheritance ?
Regards,
Giuliano Bertoletti.
What is your problem with using free functions instead - e.g. void
tolower(std::string& string) or std::string substring(std:string
const& s, int begin, int end)?
/Peter