Compartilhar via


<functional>TR1)

Define vários modelos que ajudam a construir objetos de função, que são objetos 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 telefonar de função.

#include <functional>

Comentários

Os seguintes recursos são adicionados por meio de TR1:

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

  • A Chame o wrapper é um objeto de um tipo de wrapper de telefonar.

  • A tipo de wrapper de telefonar é um tipo que contém um objeto que pode ser chamado e oferece suporte a uma operação de telefonar que encaminha a esse objeto.

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

  • A tipo que pode ser chamado é um ponteiro para função, um ponteiro para função de membro, um ponteiro para dados do membro ou um tipo de classe cujos objetos podem aparecer imediatamente à esquerda de um operador de telefonar de função.

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

O pseudo-função INVOKE(f, t1, t2, ..., tN) significa uma das seguintes ações:

  • (t1.*f)(t2, ..., tN) Quando f é um ponteiro para função 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).*f)(t2, ..., tN) Quando f é um ponteiro para função de membro de classe T e t1 não é um dos tipos de descritos no item anterior.

  • t1.*f Quando 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).*f Quando f é um ponteiro para dados de membro de classe de classe T e t1 não é um dos tipos de descritos no item anterior.

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

O pseudo-função INVOKE(f, t1, t2, ..., tN, R) significa INVOKE(f, t1, t2, ..., tN) implicitamente convertido para R.

Se um wrapper de telefonar possui um tipo de resultado fraco, o tipo de membro tipo result_type baseado no tipo de T do objeto de destino do wrapper, da seguinte maneira:

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

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

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

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

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

Cada telefonar wrapper tem um construtor de cópia.A wrapper simples telefonar é um wrapper de telefonar que tenha uma atribuição operador e cujos construtor de cópia e operador de atribuição não lançar exceções.A encaminhamento de chamar o wrapper é um invólucro de telefonar que pode ser chamado por meio de uma lista de argumento t1, t2, ..., tN, onde cada ti é um lvalue.

Os wrappers de telefonar definidos neste cabeçalho suporte função telefonar operadores que possuem argumentos de tipos de T1, T2, ..., TN, onde 0 <= N <= NMAX. Nessa implementação, o valor de NMAX é 10.

Declarações

Classe

Descrição

Classe bad_function_call

Relatórios de uma telefonar de função inválido.

função de classe

Wrapper para um objeto que pode ser chamado.

Classe de hash

Calcula um código hash para um valor.

Classe is_bind_expression

Testa se o tipo é gerado por chamar bind.

Classe is_placeholder

Testa se o tipo é um espaço reservado.

Classe reference_wrapper

Quebra uma referência.

Classe result_of

O tipo de retorno de um objeto que pode ser chamado com quebra automática.

Objeto

Descrição

Objeto _1

Espaços reservados para argumentos substituíveis.

Funções de modelo

Operador

Descrição

operador == <função>

Não permite a comparação de igualdade de objetos que pode ser chamados.

operador! = <função>

Não permite a comparação de desigualdade de objetos podem ser chamados.

Função

Descrição

BIND a função

Vincula os argumentos a um objeto que pode ser chamado.

Função cref

Constrói um const reference_wrapper de um argumento.

Função mem_fn

Gera um wrapper simples telefonar.

Função ref

Constrói um reference_wrapper de um argumento.

Troque a função <functional>

Troca dois function objetos.

Consulte também

Outros recursos

Referência de extensões de TR1 biblioteca C++ padrão