This function is called when a regular expression needs to match a range (e.g., [a-z]) against a character with locale-specific information: Generally, to match the character x against the range [a-z], a lexicographical comparison is performed by checking whether a<=x && x<=z. When the regex object has collate as a syntax option, all the characters and collating elements involved in the comparison are first transformed using this function.
The function takes a range instead of a single character to accommodate for multi-character collating elements.
A custom traits class can define a different transformation producing string values that are ordered differently when compared lexicographically.
Parameters
first, last
Forward iterators to the initial and final positions in a sequence of characters. The range used is [first,last), which includes all the characters between first and last, including the character pointed by first but not the character pointed by last.
Return value
The string transformation of the sequence of characters. string_type is a member type, alias of its corresponding string type. In regex_traits it is an alias of the basic_string with the same template parameter (e.g., string for regex_traits<char>).