Sdílet prostřednictvím


regex_traits – třída

Popisuje charakteristiky prvků pro porovnávání.

Syntaxe

template<class Elem>
class regex_traits

Parametry

Elem
Typ prvku znaku, který chcete popsat.

Poznámky

Šablona třídy popisuje různé vlastnosti regulárního výrazu pro typ Elem. Šablona třídy basic_regex Třída používá tyto informace k manipulaci s prvky typu Elem.

Každý regex_traits objekt obsahuje objekt typu regex_traits::locale , který používá některé členské funkce. Výchozí národní prostředí je kopie regex_traits::locale(). Členová funkce imbue nahradí objekt národního prostředí a členová funkce getloc vrátí kopii objektu národního prostředí.

Konstruktory

Konstruktor Popis
regex_traits Vytvoří objekt.

Typedefs

Název typu Popis
char_class_type Typ designátorů tříd znaků.
char_type Typ prvku
locale_type Typ uloženého objektu národního prostředí.
size_type Typ délky sekvence.
string_type Typ řetězce prvků.

Členské funkce

Členová funkce Popis
getloc Vrátí uložený objekt národního prostředí.
naplnit Změní uložený objekt národního prostředí.
isctype Testuje členství ve třídě.
length Vrátí délku sekvence ukončené hodnotou null.
lookup_classname Namapuje posloupnost na třídu znaků.
lookup_collatename Mapuje posloupnost na kompletující prvek.
transformovat Převede se na ekvivalentní seřazenou sekvenci.
transform_primary Převede na ekvivalentní seřazenou sekvenci bez velkých a malých písmen.
překládat Převede na ekvivalentní odpovídající prvek.
translate_nocase Převede na ekvivalentní prvek porovnávání bez velkých písmen.
value Převede prvek na hodnotu číslice.

Požadavky

Header:<regex>

Namespace: std

Příklad

// std__regex__regex_traits.cpp
// compile with: /EHsc
#include <regex>
#include <iostream>

typedef std::regex_traits<char> Mytr;
int main()
    {
    Mytr tr;

    Mytr::char_type ch = tr.translate('a');
    std::cout << "translate('a') == 'a' == " << std::boolalpha
        << (ch == 'a') << std::endl;

    std::cout << "nocase 'a' == 'A' == " << std::boolalpha
        << (tr.translate_nocase('a') == tr.translate_nocase('A'))
        << std::endl;

    const char *lbegin = "abc";
    const char *lend = lbegin + strlen(lbegin);
    Mytr::size_type size = tr.length(lbegin);
    std::cout << "length(\"abc\") == " << size <<std::endl;

    Mytr::string_type str = tr.transform(lbegin, lend);
    std::cout << "transform(\"abc\") < \"abc\" == " << std::boolalpha
        << (str < "abc") << std::endl;

    const char *ubegin = "ABC";
    const char *uend = ubegin + strlen(ubegin);
    std::cout << "primary \"ABC\" < \"abc\" == " << std::boolalpha
        << (tr.transform_primary(ubegin, uend) <
            tr.transform_primary(lbegin, lend))
        << std::endl;

    const char *dig = "digit";
    Mytr::char_class_type cl = tr.lookup_classname(dig, dig + 5);
    std::cout << "class digit == d == " << std::boolalpha
        << (cl == tr.lookup_classname(dig, dig + 1))
        << std::endl;

    std::cout << "'3' is digit == " <<std::boolalpha
        << tr.isctype('3', tr.lookup_classname(dig, dig + 5))
        << std::endl;

    std::cout << "hex C == " << tr.value('C', 16) << std::endl;

// other members
    str = tr.lookup_collatename(dig, dig + 5);

    Mytr::locale_type loc = tr.getloc();
    tr.imbue(loc);

    return (0);
    }
translate('a') == 'a' == true
nocase 'a' == 'A' == true
length("abc") == 3
transform("abc") < "abc" == false
primary "ABC" < "abc" == false
class digit == d == true
'3' is digit == true
hex C == 12

regex_traits::char_class_type

Typ designátorů tříd znaků.

typedef T8 char_class_type;

Poznámky

Typ je synonymem pro nespecifikovaný typ, který určuje třídy znaků. Hodnoty tohoto typu lze kombinovat pomocí operátoru | k určení tříd, které jsou sjednocením tříd určených operandy.

regex_traits::char_type

Typ prvku

typedef Elem char_type;

Poznámky

Typedef je synonymem pro argument Elemšablony .

regex_traits::getloc

Vrátí uložený objekt národního prostředí.

locale_type getloc() const;

Poznámky

Členová funkce vrátí uložený locale objekt.

regex_traits::imbue

Změní uložený objekt národního prostředí.

locale_type imbue(locale_type loc);

Parametry

Loc
Objekt národního prostředí, který se má uložit.

Poznámky

Členová funkce zkopíruje umístění uloženého objektu locale a vrátí kopii předchozí hodnoty uloženého locale objektu.

regex_traits::isctype

Testuje členství ve třídě.

bool isctype(char_type ch, char_class_type cls) const;

Parametry

ch
Prvek, který chcete otestovat.

Cls
Třídy, pro které se mají testovat.

Poznámky

Členské funkce vrátí hodnotu true pouze v případě, že znak ch je ve třídě znaků určené cls.

regex_traits::length

Vrátí délku sekvence ukončené hodnotou null.

static size_type length(const char_type *str);

Parametry

Str
Sekvence ukončená hodnotou null.

Poznámky

Statická členová funkce vrátí std::char_traits<char_type>::length(str).

regex_traits::locale_type

Typ uloženého objektu národního prostředí.

typedef T7 locale_type;

Poznámky

Typedef je synonymem pro typ, který zapouzdřuje národní prostředí. Ve specialicích regex_traits<char> a regex_traits<wchar_t> je to synonymum pro std::locale.

regex_traits::lookup_classname

Namapuje posloupnost na třídu znaků.

template <class FwdIt>
char_class_type lookup_classname(FwdIt first, FwdIt last) const;

Parametry

první
Začátek sekvence, která se má vyhledat.

poslední
Konec sekvence, která se má vyhledat.

Poznámky

Členová funkce vrátí hodnotu, která určuje třídu znaků pojmenovanou posloupností znaků, na kterou odkazuje jeho argumenty. Hodnota nezávisí na velikosti písmen v posloupnosti.

Specializace regex_traits<char> rozpozná názvy "d", , "alnum""w""cntrl""blank""alpha""s", "digit", "graph", , "lower", "print", "punct", , "space""upper"a "xdigit", všechny bez ohledu na případ.

Specializace regex_traits<wchar_t> rozpozná názvy L"d", , L"alnum"L"w"L"cntrl"L"blank"L"alpha"L"s", L"digit", L"graph", , L"lower", L"print", L"punct", , L"space"L"upper"a L"xdigit", všechny bez ohledu na případ.

regex_traits::lookup_collatename

Mapuje posloupnost na kompletující prvek.

template <class FwdIt>
string_type lookup_collatename(FwdIt first, FwdIt last) const;

Parametry

první
Začátek sekvence, která se má vyhledat.

poslední
Konec sekvence, která se má vyhledat.

Poznámky

Členské funkce vrátí objekt řetězce obsahující kompletující prvek odpovídající sekvenci [first, last)nebo prázdný řetězec, pokud sekvence není platným kompletovacím prvkem.

regex_traits::regex_traits

Vytvoří objekt.

regex_traits();

Poznámky

Konstruktor vytvoří objekt, jehož uložený locale objekt je inicializován do výchozího národního prostředí.

regex_traits::size_type

Typ délky sekvence.

typedef T6 size_type;

Poznámky

Typedef je synonymem pro celočíselný typ bez znaménka. Ve specialicích regex_traits<char> a regex_traits<wchar_t> je to synonymum pro std::size_t.

Typedef je synonymem pro std::size_t.

regex_traits::string_type

Typ řetězce prvků.

typedef basic_string<Elem> string_type;

Poznámky

Typedef je synonymem pro basic_string<Elem>.

regex_traits::transform

Převede se na ekvivalentní seřazenou sekvenci.

template <class FwdIt>
string_type transform(FwdIt first, FwdIt last) const;

Parametry

první
Začátek sekvence, která se má transformovat

poslední
Konec sekvence, která se má transformovat.

Poznámky

Členová funkce vrátí řetězec, který generuje pomocí pravidla transformace, které závisí na uloženém locale objektu. Pro dvě sekvence znaků určené rozsahy [first1, last1) iterátoru a [first2, last2), transform(first1, last1) < transform(first2, last2) pokud sekvence znaků určená rozsahem [first1, last1) iterátoru seřadí před posloupností znaků určenou rozsahem [first2, last2)iterátoru .

regex_traits::transform_primary

Převede na ekvivalentní seřazenou sekvenci bez velkých a malých písmen.

template <class FwdIt>
string_type transform_primary(FwdIt first, FwdIt last) const;

Parametry

první
Začátek sekvence, která se má transformovat

poslední
Konec sekvence, která se má transformovat.

Poznámky

Členová funkce vrátí řetězec, který generuje pomocí pravidla transformace, které závisí na uloženém locale objektu. Pro dvě sekvence znaků určené oblastmi [first1, last1) iterátoru a [first2, last2), transform_primary(first1, last1) < transform_primary(first2, last2) pokud sekvence znaků určená rozsahem [first1, last1) iterátoru seřadí před sekvenci znaků určenou rozsahem [first2, last2) iterátoru bez ohledu na malá a velká písmena nebo zvýraznění.

regex_traits::translate

Převede na ekvivalentní odpovídající prvek.

char_type translate(char_type ch) const;

Parametry

ch
Prvek, který chcete převést.

Poznámky

Členová funkce vrátí znak, který generuje pomocí pravidla transformace, které závisí na uloženém locale objektu. Pro dva char_type objekty ch1 a ch2, translate(ch1) == translate(ch2) pouze pokud ch1 a ch2 měl by se shodovat, když jeden nastane v definici regulárního výrazu a druhý nastane na odpovídající pozici v cílové sekvenci pro shodu citlivou na národní prostředí.

regex_traits::translate_nocase

Převede na ekvivalentní prvek porovnávání bez velkých písmen.

char_type translate_nocase(char_type ch) const;

Parametry

ch
Prvek, který chcete převést.

Poznámky

Členová funkce vrátí znak, který generuje pomocí pravidla transformace, které závisí na uloženém locale objektu. Pro dva char_type objekty ch1 a ch2, translate_nocase(ch1) == translate_nocase(ch2) pouze pokud ch1 a ch2 měl by se shodovat, když jeden nastane v definici regulárního výrazu a druhý nastane na odpovídající pozici v cílové sekvenci nerozlišující malá a velká písmena.

regex_traits::value

Převede prvek na hodnotu číslice.

int value(Elem ch, int radix) const;

Parametry

ch
Prvek, který chcete převést.

základ
Aritmetická základna, která se má použít.

Poznámky

Členová funkce vrátí hodnotu reprezentovanou znakem ch v základu radix nebo -1, pokud argument ch není platnou číslicí v základu radix. Funkce bude volána pouze s argumentem radixu 8, 10 nebo 16.

Viz také

<regex>
regex_constants – třída
regex_error – třída
<funkce regulárních výrazů>
regex_iterator – třída
<Operátory regulárních výrazů>
regex_token_iterator – třída
<regex> typedefs
<regex_traits char> – třída
<třída regex_traits wchar_t>