Partilhar via


regex_traits Classe

Descreve as características dos elementos para correspondência.

Sintaxe

template<class Elem>
class regex_traits

Parâmetros

Elem
O tipo de elemento de caractere a ser descrito.

Observações

O modelo de classe descreve várias características de expressão regular para o tipo Elem. O modelo basic_regex de classe usa essas informações para manipular elementos do tipo Elem.

Cada regex_traits objeto contém um objeto do tipo regex_traits::locale que é usado por algumas de suas funções de membro. A localidade padrão é uma cópia do regex_traits::locale(). A função imbue member substitui o objeto locale e a função getloc member retorna uma cópia do objeto locale.

Construtores

Construtor Descrição
regex_traits Constrói o objeto.

Typedefs (definições de tipos)

Nome do tipo Descrição
char_class_type O tipo de designadores de classe de caracteres.
char_type O tipo de um elemento.
locale_type O tipo do objeto de localidade armazenado.
size_type O tipo de comprimento de uma sequência.
string_type O tipo de uma cadeia de caracteres de elementos.

Funções de membro

Função de membro Descrição
Getloc Retorna o objeto de localidade armazenado.
imbue Altera o objeto de localidade armazenado.
isctype Testes para associação de classe.
comprimento Devolve o comprimento de uma sequência terminada em nulo.
lookup_classname Mapeia uma sequência para uma classe de caracteres.
lookup_collatename Mapeia uma sequência para um elemento de agrupamento.
transformar Converte em sequência ordenada equivalente.
transform_primary Converte em seqüência ordenada sem maiúsculas e minúsculas equivalente.
traduzir Converte em elemento correspondente equivalente.
translate_nocase Converte em elemento equivalente de correspondência sem maiúsculas e minúsculas.
valor Converte um elemento em um valor de dígito.

Requerimentos

Cabeçalho:<regex>

Espaço de nomes: std

Exemplo

// 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

O tipo de designadores de classe de caracteres.

typedef T8 char_class_type;

Observações

O tipo é um sinônimo de um tipo não especificado que designa classes de caracteres. Valores desse tipo podem ser combinados usando o | operador para designar classes de caracteres que são a união das classes designadas pelos operandos.

regex_traits::char_type

O tipo de um elemento.

typedef Elem char_type;

Observações

O typedef é um sinônimo para o argumento Elemtemplate .

regex_traits::getloc

Retorna o objeto de localidade armazenado.

locale_type getloc() const;

Observações

A função de membro retorna o objeto armazenado locale .

regex_traits::imbue

Altera o objeto de localidade armazenado.

locale_type imbue(locale_type loc);

Parâmetros

loc
O objeto de localidade a ser armazenado.

Observações

A função de membro copia loc para o objeto armazenado locale e retorna uma cópia do valor anterior do objeto armazenado locale .

regex_traits::isctype

Testes para associação de classe.

bool isctype(char_type ch, char_class_type cls) const;

Parâmetros

ch
O elemento a testar.

CLS
As classes para testar.

Observações

A função de membro retorna true somente se o caractere ch estiver na classe de caractere designada por cls.

regex_traits::comprimento

Devolve o comprimento de uma sequência terminada em nulo.

static size_type length(const char_type *str);

Parâmetros

STR
A sequência terminada em nulo.

Observações

A função de membro estático retorna std::char_traits<char_type>::length(str).

regex_traits::locale_type

O tipo do objeto de localidade armazenado.

typedef T7 locale_type;

Observações

O typedef é um sinônimo de um tipo que encapsula localidades. Nas especializações e regex_traits<char> é sinónimo de .regex_traits<wchar_t>std::locale

regex_traits::lookup_classname

Mapeia uma sequência para uma classe de caracteres.

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

Parâmetros

primeira
Início da sequência para olhar para cima.

último
Fim da sequência para pesquisar.

Observações

A função member retorna um valor que designa a classe de caractere nomeada pela sequência de caracteres apontada por seus argumentos. O valor não depende do caso dos caracteres na sequência.

A especialização regex_traits<char> reconhece os nomes "d", "s", , "w", "alnum", "alpha""blank""cntrl""digit""graph""lower""print""punct""space""upper"e "xdigit", tudo independentemente do caso.

A especialização regex_traits<wchar_t> reconhece os nomes L"d", L"s", , L"w", L"alnum", L"alpha"L"blank"L"cntrl"L"digit"L"graph"L"lower"L"print"L"punct"L"space"L"upper"e L"xdigit", tudo independentemente do caso.

regex_traits::lookup_collatename

Mapeia uma sequência para um elemento de agrupamento.

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

Parâmetros

primeira
Início da sequência para olhar para cima.

último
Fim da sequência para pesquisar.

Observações

A função member retorna um objeto string contendo o elemento de agrupamento correspondente à sequência [first, last), ou uma string vazia se a sequência não for um elemento de agrupamento válido.

regex_traits::regex_traits

Constrói o objeto.

regex_traits();

Observações

O construtor constrói um objeto cujo objeto armazenado locale é inicializado para a localidade padrão.

regex_traits::size_type

O tipo de comprimento de uma sequência.

typedef T6 size_type;

Observações

O typedef é um sinônimo de um tipo integral não assinado. Nas especializações e regex_traits<char> é sinónimo de .regex_traits<wchar_t>std::size_t

O typedef é sinônimo de std::size_t.

regex_traits::string_type

O tipo de uma cadeia de caracteres de elementos.

typedef basic_string<Elem> string_type;

Observações

O typedef é sinônimo de basic_string<Elem>.

regex_traits::transformar

Converte em sequência ordenada equivalente.

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

Parâmetros

primeira
Início da sequência para transformar.

último
Fim da sequência para transformar.

Observações

A função member retorna uma cadeia de caracteres que ela gera usando uma regra de transformação que depende do objeto armazenado locale . Para duas sequências de caracteres designadas pelos intervalos [first1, last1) do iterador e [first2, last2), transform(first1, last1) < transform(first2, last2) se a sequência de caracteres designada pelo intervalo [first1, last1) do iterador for classificada antes da sequência de caracteres designada pelo intervalo [first2, last2)do iterador.

regex_traits::transform_primary

Converte em seqüência ordenada sem maiúsculas e minúsculas equivalente.

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

Parâmetros

primeira
Início da sequência para transformar.

último
Fim da sequência para transformar.

Observações

A função member retorna uma cadeia de caracteres que ela gera usando uma regra de transformação que depende do objeto armazenado locale . Para duas sequências de caracteres designadas pelos intervalos [first1, last1) do iterador e [first2, last2), transform_primary(first1, last1) < transform_primary(first2, last2) se a sequência de caracteres designada pelo intervalo [first1, last1) do iterador for classificada antes da sequência de caracteres designada pelo intervalo [first2, last2) do iterador, sem considerar maiúsculas e minúsculas ou acentos.

regex_traits::traduzir

Converte em elemento correspondente equivalente.

char_type translate(char_type ch) const;

Parâmetros

ch
O elemento a converter.

Observações

A função de membro retorna um caractere que gera usando uma regra de transformação que depende do objeto armazenado locale . Para dois char_type objetos ch1 e ch2, translate(ch1) == translate(ch2) somente se ch1 e ch2 deve corresponder quando um ocorre na definição de expressão regular e o outro ocorre em uma posição correspondente na sequência de destino para uma correspondência sensível à localidade.

regex_traits::translate_nocase

Converte em elemento equivalente de correspondência sem maiúsculas e minúsculas.

char_type translate_nocase(char_type ch) const;

Parâmetros

ch
O elemento a converter.

Observações

A função de membro retorna um caractere que gera usando uma regra de transformação que depende do objeto armazenado locale . Para dois char_type objetos ch1 e ch2, translate_nocase(ch1) == translate_nocase(ch2) somente se ch1 e ch2 deve corresponder quando um ocorre na definição de expressão regular e o outro ocorre em uma posição correspondente na sequência de destino para uma correspondência que não diferencia maiúsculas de minúsculas.

regex_traits::valor

Converte um elemento em um valor de dígito.

int value(Elem ch, int radix) const;

Parâmetros

ch
O elemento a converter.

radix
A base aritmética a utilizar.

Observações

A função de membro retorna o valor representado pelo caractere ch no radix base, ou -1 se ch não for um dígito válido no radix base. A função só será chamada com um argumento radix de 8, 10 ou 16.

Ver também

<regex>
regex_constants Classe
regex_error Classe
<funções regex>
regex_iterator Classe
<Operadores Regex>
Classe regex_token_iterator
<Regex> TypeDefs
<regex_traits char> Classe
<regex_traits wchar_t> Classe