Freigeben über


function::target

Prüft, ob aufrufbares gespeichertes Objekt aufgerufen werden kann, wie angegeben.

template<class Fty2>
    Fty2 *target();
template<class Fty2>
    const Fty2 *target() const;

Parameter

  • Fty2
    Der aufrufbare zu testen Objekttyp des Ziels.

Hinweise

Der Typ Fty2 muss für die Argumenttypen T1, T2, ..., TN und Rückgabetyp Ret aufgerufen werden können.Wenn target_type() == typeid(Fty2), die Membervorlagenfunktion die Adresse des Zielobjekts zurückgibt, Andernfalls wird 0 zurückgegeben.

Ein Typ Fty2 ist für die Argumenttypen T1, T2, ..., TN und Rückgabetyp Ret aufgerufen werden, wenn, für lvalues fn, t1, t2, ..., tN von Typen Fty2, T1, T2, ..., TN bzw. INVOKE(fn, t1, t2, ..., tN) wohl geformt und, wenn Ret nicht void ist, zu Ret konvertiert werden kann.

Beispiel

 

// 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); 
    } 
 
  

Anforderungen

Header: <functional>

Namespace: std

Siehe auch

Referenz

function Class

function::target_type