home | help
std::regex_..._collatename(3)  C++ Standard Libary std::regex_..._collatename(3)

NAME
     std::regex_traits::lookup_collatename  - std::regex_traits::lookup_collate-
     name

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 collat-
     ing 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 char-
     acters 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

http://cppreference.com 	   2024.06.10	   std::regex_..._collatename(3)

home | help