function::target
Testa se o objeto acessível armazenado é acessível como especificado.
template<class Fty2>
Fty2 *target();
template<class Fty2>
const Fty2 *target() const;
Parâmetros
- Fty2
O tipo de objeto acessível de destino a ser testada.
Comentários
O tipo Fty2 deve ser acessível para os tipos T1, T2, ..., TN de argumento e o tipo de retorno Ret. Se target_type() == typeid(Fty2), a função do modelo de membro retorna o endereço do objeto de destino; caso contrário, retornará 0.
Um tipo Fty2 é útil para os tipos T1, T2, ..., TN de argumento e o tipo de retorno Ret se, para lvalues fn, t1, t2, ..., tN dos tipos Fty2, T1, T2, ..., TN, respectivamente, INVOKE(fn, t1, t2, ..., tN) de for bem formada e, se Ret não é void, convertido em Ret.
Exemplo
// std_tr1__functional__function_target.cpp
// compile with: /EHsc
#include <functional>
#include <iostream>
int neg(int val)
{
return (-val);
}
int main()
{
typedef int (*Myfun)(int);
std::function<int (int)> fn0(neg);
std::cout << std::boolalpha << "empty == " << !fn0 << std::endl;
std::cout << "no target == " << (fn0.target<Myfun>() == 0) << std::endl;
Myfun *fptr = fn0.target<Myfun>();
std::cout << "val == " << (*fptr)(3) << std::endl;
std::function<int (int)> fn1;
std::cout << std::boolalpha << "empty == " << !fn1 << std::endl;
std::cout << "no target == " << (fn1.target<Myfun>() == 0) << std::endl;
return (0);
}
Requisitos
Cabeçalho: <funcional>
Namespace: std