function::target
Testy, jeśli obiekt wpłacone przechowywane jest wpłacone określone.
template<class Fty2>
Fty2 *target();
template<class Fty2>
const Fty2 *target() const;
Parametry
- Fty2
Typ wpłacone obiektu docelowego do testowania.
Uwagi
Typ Fty2 musi być wpłacone typów argumentu T1, T2, ..., TN i zwracany typ Ret.Jeśli target_type() == typeid(Fty2), funkcja szablonu Członkowskich zwraca adres obiektu docelowego; w przeciwnym razie zwraca 0.
Typ Fty2 jest wpłacone na typy argumentów T1, T2, ..., TN i zwracany typ Ret przypadku lvalues fn, t1, t2, ..., tN typów Fty2, T1, T2, ..., TN, odpowiednio, INVOKE(fn, t1, t2, ..., tN) jest dobrze sformułowany i, jeżeli Ret nie jest void, jest konwertowany na Ret.
Przykład
// 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);
}
Wymagania
Nagłówek: <functional>
Obszar nazw: std