table of contents
        
      
      
    | std::regex_traits::lookup_collatename(3) | C++ Standard Libary | std::regex_traits::lookup_collatename(3) | 
NAME¶
std::regex_traits::lookup_collatename - std::regex_traits::lookup_collatename
Synopsis¶
 template< class ForwardIt >
  
   string_type lookup_collatename( ForwardIt first, ForwardIt last ) const;
  
   If the character sequence [first, last) represents the name of a valid
    collating
  
   element in the currently imbued locale, returns the name of that collating
    element.
  
   Otherwise, returns an empty string.
  
   Collating elements are the symbols found in POSIX regular expressions between
    [. and
  
   .]. For example, [.a.] matches the character a in the C locale. [.tilde.]
    matches
  
   the character ~ in the C locale as well. [.ch.] matches the digraph ch in
    Czech
  
   locale, but generates std::regex_error with error code
  
   std::regex_constants::error_collate in most other locales.
Parameters¶
 first, last - a pair of iterators which determines the sequence
    of characters that
  
   represents a collating element name
Type requirements¶
 -
  
   ForwardIt must meet the requirements of LegacyForwardIterator.
Return value¶
The representation of the named collating element as a character string.
Example¶
// Run this code
  
   #include <iostream>
  
   #include <regex>
  
   #include <string>
  
   struct noisy_traits : std::regex_traits<char>
  
   {
  
   template<class Iter>
  
   string_type lookup_collatename(Iter first, Iter last) const
  
   {
  
   string_type result = regex_traits::lookup_collatename(first, last);
  
   std::cout <<
    "regex_traits<>::lookup_collatename(\""
  
   << string_type(first, last)
  
   << "\") returns \"" << result <<
    "\"\n";
  
   return result;
  
   }
  
   };
  
   int main()
  
   {
  
   std::string str = "z|}a"; // C locale collation order:
    x,y,z,{,|,},~
  
   std::basic_regex<char, noisy_traits> re("[x-[.tilde.]]*a",
    std::regex::basic);
  
   std::cout << std::boolalpha << std::regex_match(str, re) <<
    '\n';
  
   }
Possible output:¶
 regex_traits<>::lookup_collatename("tilde")
    returns "~"
  
   true
| 2024.06.10 | http://cppreference.com |