std::mem_fn

Da cppreference.com.
< cpp‎ | utility‎ | functional

 
 
Utilità libreria
Tipo di supporto (basic types, RTTI, type traits)
Gestione della memoria dinamica
La gestione degli errori
Programma di utilità
Funzioni variadic
Data e ora
Funzione oggetti
initializer_list(C++11)
bitset
hash(C++11)
Gli operatori relazionali
Original:
Relational operators
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
rel_ops::operator!=
rel_ops::operator>
rel_ops::operator<=
rel_ops::operator>=
Coppie e tuple
Original:
Pairs and tuples
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
pair
tuple(C++11)
piecewise_construct_t(C++11)
piecewise_construct(C++11)
Swap, in avanti e spostare
Original:
Swap, forward and move
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
swap
forward(C++11)
move(C++11)
move_if_noexcept(C++11)
declval(C++11)
 
Funzione oggetti
Funzione wrapper
Original:
Function wrappers
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
function(C++11)
mem_fn(C++11)
bad_function_call(C++11)
Associare
Original:
Bind
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
bind(C++11)
is_bind_expression(C++11)
is_placeholder(C++11)
_1, _2, _3, ...(C++11)
Wrapper di riferimento
Original:
Reference wrappers
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
reference_wrapper(C++11)
ref
cref
(C++11)
(C++11)
Operatore wrapper
Original:
Operator wrappers
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Negatori
Original:
Negators
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Sconsigliata a leganti e adattatori
Original:
Deprecated binders and adaptors
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
unary_function(deprecato)
binary_function(deprecato)
ptr_fun(deprecato)
pointer_to_unary_function(deprecato)
pointer_to_binary_function(deprecato)
mem_fun(deprecato)
mem_fun_t
mem_fun1_t
const_mem_fun_t
const_mem_fun1_t
(deprecato)
(deprecato)
(deprecato)
(deprecato)
mem_fun_ref(deprecato)
mem_fun_ref_t
mem_fun1_ref_t
const_mem_fun_ref_t
const_mem_fun1_ref_t
(deprecato)
(deprecato)
(deprecato)
(deprecato)
binder1st
binder2nd
(deprecato)
(deprecato)
bind1st
bind2nd
(deprecato)
(deprecato)
 
Elemento definito nell'header <functional>
template<class R, class T >
/*unspecified*/ mem_fn(R T::* pm);
(1) (dal C++11)
template<class R, class T, class... Args>

/*unspecified*/ mem_fn(R (T::* pm)(Args...));
template<class R, class T, class... Args>
/*unspecified*/ mem_fn(R (T::* pm)(Args...)const);
template<class R, class T, class... Args>
/*unspecified*/ mem_fn(R (T::* pm)(Args...)volatile);
template<class R, class T, class... Args>
/*unspecified*/ mem_fn(R (T::* pm)(Args...)constvolatile);
template<class R, class T, class... Args>
/*unspecified*/ mem_fn(R (T::* pm)(Args...)&);
template<class R, class T, class... Args>
/*unspecified*/ mem_fn(R (T::* pm)(Args...)const&);
template<class R, class T, class... Args>
/*unspecified*/ mem_fn(R (T::* pm)(Args...)volatile&);
template<class R, class T, class... Args>
/*unspecified*/ mem_fn(R (T::* pm)(Args...)constvolatile&);
template<class R, class T, class... Args>
/*unspecified*/ mem_fn(R (T::* pm)(Args...)&&);
template<class R, class T, class... Args>
/*unspecified*/ mem_fn(R (T::* pm)(Args...)const&&);
template<class R, class T, class... Args>
/*unspecified*/ mem_fn(R (T::* pm)(Args...)volatile&&);
template<class R, class T, class... Args>

/*unspecified*/ mem_fn(R (T::* pm)(Args...)constvolatile&&);
(2) (c + 11, ma difetto)
Modello std::mem_fn funzione genera oggetti wrapper per i puntatori ai membri, in grado di memorizzare, copiare, e richiamare un puntatore a membro. Entrambi i riferimenti e puntatori (compresi i puntatori intelligenti) a un oggetto può essere utilizzato quando si invoca un std::mem_fn.
Original:
Function template std::mem_fn generates wrapper objects for pointers to members, which can store, copy, and invoke a pointer to member. Both references and pointers (including smart pointers) to an object can be used when invoking a std::mem_fn.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Gli overload (2) sono riportati come difetto.
Original:
The overloads (2) are reported as defect.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Il resolution, che recentemente è stato votato "Timidamente Ready" si propone di rimuovere tutti i sovraccarichi (2).
Original:
The resolution, which has recently been voted "Tentatively Ready" proposes to remove all the overloads (2).
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Questo si rompe un po 'di codice, vedere Esempio 3.
Original:
This will break some code, see Example 3.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Indice

[modifica]Parametri

pm -
puntatore al membro che verrà avvolto
Original:
pointer to member that will be wrapped
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[modifica]Valore di ritorno

std::mem_fn restituisce una fascia chiamata di tipo non specificato, che ha i seguenti membri:
Original:
std::mem_fn returns an call wrapper of unspecified type that has the following members:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

std :: mem_fn
Original:
std::mem_fn
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Return type

Member types

tipo
Original:
type
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
definition
result_type
il tipo di ritorno di pm se pm è un puntatore a funzione membro, non definito per puntatore a oggetto membro
Original:
the return type of pm if pm is a pointer to member function, not defined for pointer to member object
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
argument_type
T*, possibilmente cv-qualificata, se pm è un puntatore a funzione membro prendere senza argomenti
Original:
T*, possibly cv-qualified, if pm is a pointer to member function taking no arguments
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
first_argument_type
T* se pm è un puntatore a funzione membro prendere un argomento
Original:
T* if pm is a pointer to member function taking one argument
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
second_argument_type
T1 se pm è un puntatore a funzione membro di prendere un argomento di T1 tipo
Original:
T1 if pm is a pointer to member function taking one argument of type T1
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Member function

operator()
invoca l'obiettivo su un oggetto specificato, con i parametri opzionali
Original:
invokes the target on a specified object, with optional parameters
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(metodo pubblico)

[modifica]Eccezioni

Nessuno.
Original:
None.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[modifica]Esempio 1

Utilizzare mem_fn per memorizzare ed eseguire una funzione di membro e un oggetto membro:
Original:
Use mem_fn to store and execute a member function and a member object:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

#include <functional>#include <iostream>   struct Foo {void display_greeting(){std::cout<<"Hello, world.\n";}void display_number(int i){std::cout<<"number: "<< i <<'\n';}int data =7;};   int main(){ Foo f;   auto greet = std::mem_fn(&Foo::display_greeting); greet(f);   auto print_num = std::mem_fn(&Foo::display_number); print_num(f, 42);   auto access_data = std::mem_fn(&Foo::data);std::cout<<"data: "<< access_data(f)<<'\n';}

Output:

Hello, world. number: 42 data: 7

[modifica]Esempio 2

Passare una funzione membro per std::transform per creare una sequenza di numeri:
Original:
Pass a member function to std::transform to create a sequence of numbers:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

#include <iostream>#include <functional>#include <iterator>#include <memory>#include <string>#include <vector>#include <algorithm>   int main(){std::vector<std::string> words ={"This", "is", "a", "test"};std::vector<std::unique_ptr<std::string>> words2; words2.emplace_back(new std::string("another")); words2.emplace_back(new std::string("test"));   std::vector<std::size_t> lengths;std::transform(words.begin(), words.end(), std::back_inserter(lengths), std::mem_fn(&std::string::size));// uses references to stringsstd::transform(words2.begin(), words2.end(), std::back_inserter(lengths), std::mem_fn(&std::string::size));// uses unique_ptr to strings   std::cout<<"The string lengths are ";for(auto n : lengths)std::cout<< n <<' ';std::cout<<'\n';}

Output:

The string lengths are 4 2 1 4 7 4

[modifica]Esempio 3

#include <functional>   struct X {int x;   int& easy(){return x;}int& get(){return x;}constint& get()const{return x;}};     int main(void){auto a = std::mem_fn(&X::easy);// no problem at all// auto b = std::mem_fn<int& >(&X::get ); // no longer works with new specificationauto c = std::mem_fn<int&()>(&X::get);// works with both old and new specificationauto d =[](X& x){return x.get();};// another approach to overload resolution}


[modifica]Vedi anche

(C++11)
avvolge oggetto invocabile di qualsiasi tipo con la firma specificato chiamata di funzione
Original:
wraps callable object of any type with specified function call signature
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(classe template)[modifica]
(C++11)
lega uno o più argomenti a un oggetto funzione
Original:
binds one or more arguments to a function object
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(funzione di modello)[modifica]
close