Condividi tramite


<functional>

Definisce le funzioni della libreria STL (Standard Template) che consentono di costruire oggetti function, detta anche functors e i raccoglitori.Una funzione è un oggetto di un tipo che definisce operator().Un oggetto funzione può essere un puntatore a funzione, ma di solito, l'oggetto viene utilizzato per memorizzare informazioni aggiuntive che è possibile accedere durante una chiamata di funzione.

#include <functional>

Note

Gli algoritmi richiedono due tipi di oggetti function: unari e binari.Oggetti funzione unario richiedono un argomento e oggetti binari di funzione richiedono due argomenti.Un oggetto function e puntatori a funzione può essere passati come un predicato a un algoritmo, ma gli oggetti funzione inoltre sono adattabili e aumentano l'ambito, flessibilità ed efficienza di STL.Se, ad esempio, è necessario un valore da associare a una funzione prima di essere passato a un algoritmo, un puntatore a funzione non può essere utilizzato.Adattatori di funzione consente di convertire i puntatori a funzione in oggetti funzione adattabile che possono essere associati a un valore.L'intestazione <functional> contiene anche gli adattatori di funzione membro che consentono di funzioni membro per essere chiamato come oggetti funzione adattabile.Le funzioni sono adattabili se dispongono di dichiarazioni di tipi nidificati se si specifica l'argomento e i tipi restituiscono.Lo Standard di C++, è necessario che questa capacità di adattamento viene implementato dalla presenza di tutte le classi di oggetti standard ereditare dalle classi base unary_function o binary_function.Gli oggetti di funzione e loro adattatori consentono di STL aggiornare le applicazioni esistenti e integrare l'ambiente di programmazione C++ di STL.

Estensioni TR1

Nell'implementazione di Visual C++ di TR1 vengono aggiunte le seguenti funzionalità:

  • A chiamata firma è il nome di un tipo restituito, seguito da un elenco di separati da virgola tra parentesi, zero o più tipi di argomento.

  • A chiamata wrapper è un oggetto di un tipo di wrapper di chiamata.

  • A tipo di wrapper di chiamare è un tipo che contiene un oggetto RCW e supporta un'operazione di chiamata che consente di inoltrare a tale oggetto.

  • A oggetto callable è un oggetto di un tipo di RCW.

  • A tipo callable è un puntatore a funzione, un puntatore a funzione membro, un puntatore a membro dati o un tipo di classe cui oggetti possono essere visualizzate immediatamente a sinistra di un operatore di chiamata della funzione.

  • A oggetto destinazione è l'oggetto callable detenuto da un oggetto wrapper di chiamata.

Il pseudo-function INVOKE(f, t1, t2, ..., tN) indica che una delle seguenti operazioni:

  • (t1.*f)(t2, ..., tN)Quando f è un puntatore a funzione membro della classe T e t1 è un oggetto di tipo T o un riferimento a un oggetto di tipo T o un riferimento a un oggetto di un tipo derivato da T.

  • ((*t1).*f)(t2, ..., tN)Quando f è un puntatore a funzione membro della classe T e t1 non è uno dei tipi descritti nell'articolo precedente.

  • t1.*fQuando f è un puntatore ai dati dei membri della classe T e t1 è un oggetto di tipo T o un riferimento a un oggetto di tipo T o un riferimento a un oggetto di un tipo derivato da T.

  • (*t1).*fQuando f è un puntatore ai dati dei membri della classe T e t1 non è uno dei tipi descritti nell'articolo precedente.

  • f(t1, t2, ..., tN)in tutti gli altri casi.

Il pseudo-function INVOKE(f, t1, t2, ..., tN, R) significa INVOKE(f, t1, t2, ..., tN) convertito in modo implicito per R.

Se dispone di un wrapper di chiamata di un tipo di risultato debole, il tipo del relativo tipo di membro result_type in base al tipo T dell'oggetto di destinazione del wrapper, come illustrato di seguito:

  • Se T è un puntatore a funzione, result_type è un sinonimo per il tipo restituito di T.

  • Se T è un puntatore a funzione membro, result_type è un sinonimo per il tipo restituito di T.

  • Se T è un puntatore a membro di dati result_type è un sinonimo per il tipo del membro dati dichiarato.

  • Se T è un tipo di classe che dispone di un tipo di membro result_type, quindi result_type è un sinonimo di T::result_type.

  • In caso contrario, non vi è alcun membro result_type.

Wrapper ogni chiamata dispone di un costruttore di copia.A chiamata semplice wrapper è un wrapper di chiamata che ha un'assegnazione di operatore e quale costruttore di copia e l'operatore di assegnazione non generano eccezioni.A inoltro chiamata wrapper è un wrapper di chiamata può essere chiamato utilizzando un elenco di argomenti t1, t2, ..., tN, dove ogni ti è un lvalue.

I wrapper di chiamata definiti in questa operatori chiamata di funzione di intestazione supporto dispongono degli argomenti dei tipi di T1, T2, ..., TN, dove 0 <= N <= NMAX.In questa implementazione, il valore di NMAX è 10.

169de7b0.collapse_all(it-it,VS.110).gifClassi

bad_function_call

Una classe che descrive un'eccezione generata per indicare che una chiamata a operator() in un funzione oggetto non riuscita perché l'oggetto era vuoto.

binary_negate

Una classe modello che fornisce una funzione membro che nega il valore restituito di una funzione di binario specificato.

binder1st

Una classe modello che fornisce un costruttore che converte un oggetto binario di funzione in un oggetto di funzione unario associando il primo argomento della funzione binario su un valore specificato.

binder2nd

Una classe modello che fornisce un costruttore che converte un oggetto binario di funzione in un oggetto di funzione unario associando il secondo argomento della funzione binario su un valore specificato.

const_mem_fun_ref_t

Una classe di adattatori che consente a una funzione membro const che non accetta argomenti per essere chiamato come un oggetto di funzione unario quando viene inizializzato con un argomento di riferimento.

const_mem_fun_t

Una classe di adattatori che consente a una funzione membro const che non accetta argomenti per essere chiamato come un oggetto di funzione unario quando viene inizializzato con un argomento del puntatore.

const_mem_fun1_ref_t

Una classe di adattatori che consente a una funzione membro const che accetta un singolo argomento per essere chiamato come un oggetto binario di funzione quando viene inizializzato con un argomento di riferimento.

const_mem_fun1_t

Una classe di adattatori che consente a una funzione membro const che accetta un singolo argomento per essere chiamato come un oggetto binario di funzione quando viene inizializzato con un argomento del puntatore.

funzione

Una classe che esegue il wrapping di un oggetto RCW.

hash

Una classe che consente di calcolare un codice hash per un valore.

is_bind_expression

Una classe che verifica se un determinato tipo viene generato chiamando bind.

is_placeholder

Una classe che verifica se un determinato tipo è un segnaposto.

mem_fun_ref_t

Una classe di adattatori che consente a un non_const funzione membro che non accetta argomenti per essere chiamato come un oggetto di funzione unario quando viene inizializzato con un argomento di riferimento.

mem_fun_t

Una classe di adattatori che consente a un non_const funzione membro che non accetta argomenti per essere chiamato come un oggetto di funzione unario quando viene inizializzato con un argomento del puntatore.

mem_fun1_ref_t

Una classe di adattatori che consente a un non_const funzione membro che accetta un singolo argomento per essere chiamato come un oggetto binario di funzione quando viene inizializzato con un argomento di riferimento.

mem_fun1_t

Una classe di adattatori che consente a un non_const funzione membro che accetta un singolo argomento per essere chiamato come un oggetto binario di funzione quando viene inizializzato con un argomento del puntatore.

pointer_to_binary_function

Converte un puntatore a funzione binari in una funzione di binaria adattabile.

pointer_to_unary_function

Converte un puntatore a funzione unario in una funzione unaria adattabile.

reference_wrapper

Una classe che esegue il wrapping di un riferimento.

result_of

Struttura che contiene il tipo restituito di un oggetto richiamabile con ritorno a capo.

unary_negate

Una classe modello che fornisce una funzione membro che nega il valore restituito di una funzione unario specificato.

169de7b0.collapse_all(it-it,VS.110).gifFunzioni

bind

Associa gli argomenti a un oggetto RCW.

bind1st

Una funzione del modello di supporto che crea un adattatore per convertire un oggetto binario di funzione in un oggetto di funzione unario associando il primo argomento della funzione binario su un valore specificato.

bind2nd

Una funzione del modello di supporto che crea un adattatore per convertire un oggetto binario di funzione in un oggetto di funzione unario associando il secondo argomento della funzione binario su un valore specificato.

bit_and

Restituisce il valore binario AND dei due parametri.

bit_or

Restituisce il binario o tra i due parametri.

bit_xor

Restituisce il binario XOR tra i due parametri.

cref

Costruisce una variabile const reference_wrapper da un argomento.

mem_fn

Genera un wrapper semplice chiamata.

mem_fun

Funzioni del modello di supporto utilizzate per creare adattatori di oggetto funzione per le funzioni membro quando viene inizializzato con gli argomenti del puntatore.

mem_fun_ref

Funzione del modello di supporto utilizzata per creare adattatori di oggetto funzione per le funzioni membro quando viene inizializzato con gli argomenti di riferimento.

not1

Restituisce il complemento di un predicato unario.

not2

Restituisce il complemento di un predicato binario.

ptr_fun

Una funzione del modello di supporto utilizzato per convertire unaria e funzione binario puntatori, rispettivamente, nelle funzioni flessibili unari e binari.

ref

Costruisce un reference_wrapper da un argomento.

scambio

Scambia due function oggetti.

169de7b0.collapse_all(it-it,VS.110).gifStrutture

binary_function

Classe base vuota che definisce i tipi che possono essere ereditati dalla classe derivata che fornisce un oggetto funzione binario.

Divide

La classe fornisce una funzione predefinita che esegue un'operazione aritmetica di divisione di elementi di un tipo di valore specificato.

equal_to

Un predicato binario che verifica se un valore di un tipo specificato è uguale a un altro valore di quel tipo.

maggiore

Un predicato binario che verifica se un valore di un tipo specificato è maggiore di un altro valore di quel tipo.

greater_equal

Un predicato binario che verifica se un valore di un tipo specificato è maggiore o uguale a un altro valore di quel tipo.

minore

Un predicato binario che verifica se un valore di un tipo specificato è minore di un altro valore di quel tipo.

less_equal

Un predicato binario che verifica se un valore di un tipo specificato è minore o uguale a un altro valore di quel tipo.

logical_and

La classe fornisce un oggetto di funzione predefinite che esegue l'operazione logica dell'insieme agli elementi di un tipo di valore specificato e test per la verità o falsity del risultato.

logical_not

La classe fornisce un oggetto di funzione predefinite che esegue l'operazione di negazione logica agli elementi di un tipo di valore specificato e test per la verità o falsity del risultato.

logical_or

La classe fornisce un oggetto di funzione predefinite che esegue l'operazione di disgiunzione logica agli elementi di un tipo di valore specificato e test per la verità o falsity del risultato.

meno

La classe fornisce un oggetto funzione predefinita che esegue l'operazione di sottrazione aritmetica su elementi di un tipo di valore specificato.

modulus

La classe fornisce un oggetto funzione predefinita che esegue un'operazione aritmetica del modulo di elementi di un tipo di valore specificato.

Moltiplica

La classe fornisce un oggetto funzione predefinita che esegue l'operazione di moltiplicazione aritmetica su elementi di un tipo di valore specificato.

negare

La classe fornisce un oggetto funzione predefinita che restituisce il valore negativo di un valore dell'elemento.

Not_Equal_To

Un predicato binario che verifica se un valore di un tipo specificato non è uguale a un altro valore di quel tipo.

Plus

La classe fornisce una funzione predefinita che esegue un'operazione aritmetica di aggiunta di elementi di un tipo di valore specificato.

unary_function

Classe base vuota che definisce i tipi che possono essere ereditati dalla classe derivata che fornisce un oggetto di funzione unario.

169de7b0.collapse_all(it-it,VS.110).gifOggetti

_1

Segnaposto per gli argomenti sostituibili.

169de7b0.collapse_all(it-it,VS.110).gifOperatori

operatore = =

Non consente il confronto di uguaglianza di oggetti disponibili per la chiamata.

operatore! =

Non consente il confronto di disuguaglianza di oggetti disponibili per la chiamata.

Vedere anche

Riferimenti

Thread safety della libreria C++ standard

Libreria di modelli standard

Altre risorse

<funzionale> membri

File di intestazione