Customize a string class with char_traits
The string class is an alias of the basic_string class, with the signature:
class basic_string<char, std::char_traits<char>>;
The first template parameter provides the type of character. The second template parameter provides a character traits class, which provides basic character and string operations for the specified character type. We normally use the default char_traits<char> class.
We can modify the behavior of a string by providing our own custom character traits class.
How to do it…
In this recipe, we will create a character traits class for use with basic_string that will ignore casing for comparison purposes:
- First, we'll need a function to convert characters to a common case. We'll use lowercase here, but it's an arbitrary choice. Uppercase would work just as well:constexpr char char_lower(const char& c) { Â Â Â Â if(c >= 'A' &...
 
                                             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
     
         
                 
                 
                 
                 
                 
                 
                 
                 
                