<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.
Classes
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. |
|
Uma classe de modelo fornecendo uma função de membro que nega o valor de retorno de uma função binário especificado. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
Uma classe que encapsula um objeto acessível. |
|
Uma classe que calcula um código de hash para um valor. |
|
Uma classe que testa se um determinado tipo é gerado por chamar bind. |
|
Uma classe que testa se um determinado tipo é um espaço reservado. |
|
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. |
|
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. |
|
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. |
|
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. |
|
Converte um ponteiro de função binária em uma função binária adaptável. |
|
Converte um ponteiro de função unário em uma função unário adaptável. |
|
Uma classe que encapsula uma referência. |
|
Uma struct que contém o tipo de retorno de um objeto callable empacotado. |
|
Uma classe de modelo fornecendo uma função de membro que nega o valor de retorno de uma função unário especificado. |
Funções
Vincula um objeto callable argumentos. |
|
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. |
|
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. |
|
Retorna o binário e dos dois parâmetros. |
|
Retorna o binário ou dos dois parâmetros. |
|
Retorna o binário XOR dos dois parâmetros. |
|
Constrói uma const reference_wrapper de um argumento. |
|
Gera um wrapper de chamada simples. |
|
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. |
|
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. |
|
Retorna o complemento de um predicado unário. |
|
Retorna o complemento de um predicado binário. |
|
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. |
|
Constrói um reference_wrapper de um argumento. |
|
Troca dois function objetos. |
Structs
Uma classe base vazia que define os tipos que podem ser herdados por classe derivada que fornece um objeto de função binária. |
|
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. |
|
Um predicado binário que testa se um valor de um tipo especificado é igual a outro valor desse tipo. |
|
Um predicado binário testa se um valor de um tipo especificado é maior que outro valor desse tipo. |
|
Um predicado binário que testa se um valor de um tipo especificado é maior que ou igual a outro valor desse tipo. |
|
Um predicado binário testa se um valor de um tipo especificado é menor que outro valor desse tipo. |
|
Um predicado binário que testa se um valor de um tipo especificado é menor ou igual a outro valor desse tipo. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
A classe fornece um objeto de função predefinida que retorna o negativo do valor do elemento. |
|
Um predicado binário testa se um valor de um tipo especificado não é igual a outro valor desse tipo. |
|
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. |
|
Uma classe base vazia que define os tipos que podem ser herdados por classe derivada que fornece um objeto de função unário. |
Objetos
Espaços reservados para argumentos substituíveis. |
Operadores
Proíbe a comparação de igualdade dos objetos que pode ser chamados. |
|
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