std::regex_...orm_primary(3) C++ Standard Libary std::regex_...orm_primary(3) NAME std::regex_traits::transform_primary - std::regex_traits::transform_primary Synopsis template< class ForwardIt > string_type transform_primary( ForwardIt first, ForwardIt last ) const; For the character sequence [first, last), obtains the primary sort key in the imbued locale's collating order, that is, the sort key that is based on the po- sitions of the letters and collation units in the national alphabet, ignoring case, diacritics, variants, etc. If a primary sort key compares less than another primary sort key with operator<, then the character sequence that produced the first sort key comes before the character sequence that produced the second sort key, in the currently imbued locale's primary collation order. The regex library uses this trait to match characters against equiva- lence classes. For example, the regex [[=a=]] is equivalent to the character c1 if traits.transform_primary(c1) is equivalent to traits.transform_pri- mary("a") (which is true for any c1 from "AAAAAAAaA A!AcALAxAY" in the U.S. English lo- cale). Note that transform_primary() takes a character sequence argument because equiva- lence classes may be multicharacter, such as [[=ch=]] in Czech or [[=dzs=]] in Hungar- ian. There is no portable way to define primary sort key in terms of std::lo- cale since the conversion from the collation key returned by std::collate::trans- form() to the primary equivalence key is locale-specific, and if the user replaces the std::collate facet, that conversion is no longer known to the standard library's std::regex_traits. Standard library specializations of std::regex_traits return an empty string unless the std::collate facet of the currently-imbued lo- cale was not replaced by the user, and still matches the system-supplied std::collate facet), in which case std::collate_byname<CharT>::transform(first, last) is exe- cuted and the sort key it produces is converted to the expected primary sort key using a locale-specific conversion. Parameters first, last - a pair of iterators which determines the sequence of char- acters to compare Type requirements - ForwardIt must meet the requirements of LegacyForwardIterator. Return value The primary sort key for the character sequence [first, last) in the currently imbued locale, ignoring case, variant, diacritics, etc. Example Demonstrates the regex feature that works through transform_primary(). // Run this code #include <iostream> #include <regex> int main() { std::locale::global(std::locale("en_US.UTF-8")); std::wstring str = L"AAAAAAAaA A!AcALAxAY"; std::wregex re(L"[[=a=]]*", std::regex::basic); std::cout << std::boolalpha << std::regex_match(str, re) << '\n'; } Possible output: true This section is incomplete Reason: could use an example with user-defined regex_traits supplying user-defined transform_primary Category: * Todo with reason http://cppreference.com 2024.06.10 std::regex_...orm_primary(3)
NAME | Synopsis | Parameters | Type requirements | Return value | Example | Possible output: | Category:
Want to link to this manual page? Use this URL:
<https://man.FreeBSD.org/cgi/man.cgi?query=std::regex_traits::transform_primary&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>