<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 |
---|---|
Relatórios de uma telefonar de função inválido. |
|
Wrapper para um objeto que pode ser chamado. |
|
Calcula um código hash para um valor. |
|
Testa se o tipo é gerado por chamar bind. |
|
Testa se o tipo é um espaço reservado. |
|
Quebra uma referência. |
|
O tipo de retorno de um objeto que pode ser chamado com quebra automática. |
Objeto |
Descrição |
---|---|
Espaços reservados para argumentos substituíveis. |
Funções de modelo
Operador |
Descrição |
---|---|
Não permite a comparação de igualdade de objetos que pode ser chamados. |
|
Não permite a comparação de desigualdade de objetos podem ser chamados. |
Função |
Descrição |
---|---|
Vincula os argumentos a um objeto que pode ser chamado. |
|
Constrói um const reference_wrapper de um argumento. |
|
Gera um wrapper simples telefonar. |
|
Constrói um reference_wrapper de um argumento. |
|
Troca dois function objetos. |