Compartilhar via


<functional>

Define as funções de biblioteca STL (Standard Template) que ajudam a construir objetos de função, também conhecido como functors e seus fichários.Uma função é um objeto de um tipo que define operator().Um objeto de função pode ser um ponteiro de função, mas mais geralmente, o objeto é usado para armazenar informações adicionais que podem ser acessadas durante uma chamada de função.

#include <functional>

Comentários

Algoritmos exigem dois tipos de objetos de função: unário e binário.Objetos de função unário exigem um argumento, e objetos de função binária dois argumentos.Um objeto de função e ponteiros de função podem ser passados como um predicado a um algoritmo, mas objetos de função também são adaptáveis e aumentam o escopo, a flexibilidade e a eficiência da STL.Se, por exemplo, um valor necessário para ser vinculado a uma função antes de ser passado para um algoritmo, um ponteiro de função não pôde ser usado.Adaptadores de função convertem ponteiros de função em objetos de função adaptável que podem ser vinculados a um valor.Cabeçalho <functional> também contém os adaptadores de função de membro que permitem funções de membro a ser chamado como objetos de função adaptável.Funções são adaptáveis se eles têm declarações de tipo aninhado especificando seu argumento e tipos de retorno.O padrão C++ requer essa capacidade de adaptação é implementada fazendo com que todas as classes de objeto padrão herdar das classes base unary_function ou binary_function.Objetos de função e seus adaptadores permitem STL atualizar aplicativos existentes e ajuda a integrar a STL em ambiente de programação C++.

Extensões de TR1

Os seguintes recursos são adicionados na implementação do Visual C++ de TR1:

  • A chamada assinatura é o nome de um tipo de retorno seguido de uma lista separada por vírgulas entre parênteses zero ou mais tipos de argumento.

  • A chamar o wrapper é um objeto de um tipo de invólucro de chamada.

  • A tipo de invólucro de chamada é um tipo que contém um objeto callable e oferece suporte a uma operação de chamada que encaminha para o objeto.

  • A objeto callable é um objeto de um tipo que pode ser chamado.

  • A tipo callable é um ponteiro de função, um ponteiro para função de membro, um ponteiro para dados de membro ou um tipo de classe cujos objetos podem aparecer imediatamente à esquerda de um operador de chamada de função.

  • A o objeto de destino é o objeto que pode ser chamado mantido por um objeto de invólucro de chamada.

O pseudo-function INVOKE(f, t1, t2, ..., tN) significa uma das seguintes coisas:

  • (t1.*f)(t2, ..., tN)Quando f é um ponteiro para função de membro da classe T e t1 é um objeto do tipo T ou uma referência a um objeto do tipo T ou uma referência a um objeto de um tipo derivado de T.

  • ((*t1).*f)(t2, ..., tN)Quando f é um ponteiro para função de membro da classe T e t1 não é um dos tipos descritos no item anterior.

  • t1.*fQuando f é um ponteiro para dados de membro de classe T e t1 é um objeto do tipo T ou uma referência a um objeto do tipo T ou uma referência a um objeto de um tipo derivado de T.

  • (*t1).*fQuando f é um ponteiro para dados de membro de classe de classe T e t1 não é um dos tipos descritos no item anterior.

  • f(t1, t2, ..., tN)em outros casos.

O pseudo-function INVOKE(f, t1, t2, ..., tN, R) significa INVOKE(f, t1, t2, ..., tN) implicitamente convertido para R.

Se tiver um wrapper de chamada um tipo de resultado fraco, o tipo do seu tipo de membro result_type baseado no tipo de T de objeto de destino do wrapper, como segue:

  • Se T é um ponteiro para função, result_type é um sinônimo para o tipo de retorno de T.

  • Se T é um ponteiro para função de membro result_type é um sinônimo para o tipo de retorno de T.

  • Se T é um ponteiro para o membro de dados result_type é um sinônimo para o tipo declarado do membro de dados.

  • Se T é um tipo de classe que tenha um tipo de membro result_type, em seguida, result_type é sinônimo de T::result_type.

  • Caso contrário, não há nenhum membro result_type.

Cada chamada wrapper tem um construtor de cópia.A wrapper simples chamada é um wrapper de chamada tem uma atribuição operador e cujo construtor de cópia e operador de atribuição não lançar exceções.A o encaminhamento de chamada wrapper é um wrapper de chamada que pode ser chamado usando uma lista de argumentos t1, t2, ..., tN, onde cada ti é um lvalue.

Os invólucros de chamada definidos este operadores de chamada de função de suporte cabeçalho tem argumentos de tipos de T1, T2, ..., TN, onde 0 <= N <= NMAX.Nesta implementação, o valor de NMAX é 10.

169de7b0.collapse_all(pt-br,VS.110).gifClasses

bad_function_call

Uma classe que descreve uma exceção acionada para indicar que uma chamada para operator() em um função objeto falhou porque o objeto estava vazio.

binary_negate

Uma classe de modelo fornecendo uma função de membro que nega o valor de retorno de uma função binário especificado.

binder1st

Uma classe de modelo fornecendo um construtor que converte um objeto de função binária em um objeto de função unário ligando o primeiro argumento da função binário para um valor especificado.

binder2nd

Uma classe de modelo fornecendo um construtor que converte um objeto de função binária em um objeto de função unário vinculando o segundo argumento da função binário para um valor especificado.

const_mem_fun_ref_t

Uma classe de adaptador que permite que uma função de membro const que leva sem argumentos para ser chamado como um objeto de função unário quando inicializado com um argumento de referência.

const_mem_fun_t

Uma classe de adaptador que permite que uma função de membro const que leva sem argumentos para ser chamado como um objeto de função unário quando inicializado com um argumento de ponteiro.

const_mem_fun1_ref_t

Uma classe de adaptador que permite que uma função de membro const que leva um argumento único a ser chamado como um objeto de função binária quando inicializado com um argumento de referência.

const_mem_fun1_t

Uma classe de adaptador que permite que uma função de membro const que leva um argumento único a ser chamado como um objeto de função binária quando inicializado com um argumento de ponteiro.

função

Uma classe que encapsula um objeto acessível.

hash

Uma classe que calcula um código de hash para um valor.

is_bind_expression

Uma classe que testa se um determinado tipo é gerado por chamar bind.

is_placeholder

Uma classe que testa se um determinado tipo é um espaço reservado.

mem_fun_ref_t

Uma classe de adaptador que permite uma non_const função de membro leva sem argumentos para ser chamado como um objeto de função unário quando inicializado com um argumento de referência.

mem_fun_t

Uma classe de adaptador que permite uma non_const função de membro leva sem argumentos para ser chamado como um objeto de função unário quando inicializado com um argumento de ponteiro.

mem_fun1_ref_t

Uma classe de adaptador que permite uma non_const função de membro que leva um argumento único a ser chamado como um objeto de função binária quando inicializado com um argumento de referência.

mem_fun1_t

Uma classe de adaptador que permite uma non_const função de membro que leva um argumento único a ser chamado como um objeto de função binária quando inicializado com um argumento de ponteiro.

pointer_to_binary_function

Converte um ponteiro de função binária em uma função binária adaptável.

pointer_to_unary_function

Converte um ponteiro de função unário em uma função unário adaptável.

reference_wrapper

Uma classe que encapsula uma referência.

result_of

Uma struct que contém o tipo de retorno de um objeto callable empacotado.

unary_negate

Uma classe de modelo fornecendo uma função de membro que nega o valor de retorno de uma função unário especificado.

169de7b0.collapse_all(pt-br,VS.110).gifFunções

ligar

Vincula um objeto callable argumentos.

bind1st

Uma função de modelo auxiliar cria um adaptador para converter um objeto de função binária em um objeto de função unário ligando o primeiro argumento da função binário para um valor especificado.

bind2nd

Uma função de modelo auxiliar cria um adaptador para converter um objeto de função binária em um objeto de função unário vinculando o segundo argumento da função binário para um valor especificado.

bit_and

Retorna o binário e dos dois parâmetros.

bit_or

Retorna o binário ou dos dois parâmetros.

bit_xor

Retorna o binário XOR dos dois parâmetros.

cref

Constrói uma const reference_wrapper de um argumento.

mem_fn

Gera um wrapper de chamada simples.

mem_fun

Funções auxiliares do modelo usadas para criar adaptadores de objeto de função para as funções de membro quando inicializados com argumentos de ponteiro.

mem_fun_ref

Um modelo de função de auxiliar usado para construir os adaptadores de objeto de função para as funções de membro quando inicializado com os argumentos de referência.

not1

Retorna o complemento de um predicado unário.

not2

Retorna o complemento de um predicado binário.

ptr_fun

Uma função auxiliar do modelo usado para converter unário e binária função ponteiros, respectivamente, em funções adaptáveis unário e binário.

ref

Constrói um reference_wrapper de um argumento.

troca

Troca dois function objetos.

169de7b0.collapse_all(pt-br,VS.110).gifStructs

binary_function

Uma classe base vazia que define os tipos que podem ser herdados por classe derivada que fornece um objeto de função binária.

divide

A classe fornece um objeto de função predefinidas que realiza a operação aritmética de divisão em elementos de um tipo de valor especificado.

equal_to

Um predicado binário que testa se um valor de um tipo especificado é igual a outro valor desse tipo.

maior

Um predicado binário testa se um valor de um tipo especificado é maior que outro valor desse tipo.

greater_equal

Um predicado binário que testa se um valor de um tipo especificado é maior que ou igual a outro valor desse tipo.

menos

Um predicado binário testa se um valor de um tipo especificado é menor que outro valor desse tipo.

less_equal

Um predicado binário que testa se um valor de um tipo especificado é menor ou igual a outro valor desse tipo.

logical_and

A classe fornece um objeto de função predefinida que executa a operação lógica de conjunto em elementos de um tipo de valor especificado e testa a verdade ou falsity do resultado.

logical_not

A classe fornece um objeto de função predefinida que executa a operação de negação lógica em elementos de um tipo de valor especificado e testa a verdade ou falsity do resultado.

logical_or

A classe fornece um objeto de função predefinida que executa a operação de disjunção lógica em elementos de um tipo de valor especificado e testa a verdade ou falsity do resultado.

subtração

A classe fornece um objeto de função predefinidas que executa a operação aritmética de subtração nos elementos de um tipo de valor especificado.

MODULUS

A classe fornece um objeto de função predefinidas que realiza a operação aritmética de módulo em elementos de um tipo de valor especificado.

Multiplica

A classe fornece um objeto de função predefinidas que realiza a operação aritmética de multiplicação de elementos de um tipo de valor especificado.

recusar

A classe fornece um objeto de função predefinida que retorna o negativo do valor do elemento.

not_equal_to

Um predicado binário testa se um valor de um tipo especificado não é igual a outro valor desse tipo.

adição

A classe fornece um objeto de função predefinidas que realiza a operação aritmética de adição de elementos de um tipo de valor especificado.

unary_function

Uma classe base vazia que define os tipos que podem ser herdados por classe derivada que fornece um objeto de função unário.

169de7b0.collapse_all(pt-br,VS.110).gifObjetos

_1

Espaços reservados para argumentos substituíveis.

169de7b0.collapse_all(pt-br,VS.110).gifOperadores

operador = =

Proíbe a comparação de igualdade dos objetos que pode ser chamados.

operador! =

Proíbe a comparação de desigualdade de objetos que pode ser chamados.

Consulte também

Referência

Segurança do thread na biblioteca C++ padrão

Standard Template Library

Outros recursos

<functional> Membros

Arquivos de cabeçalho