共用方式為


mem_fn Function

產生簡單呼叫包裝函式。

template<class Ret, class Ty>
    unspecified mem_fn(Ret Ty::*pm);

參數

  • Ret
    包裝函式的傳回型別。

  • Ty
    成員函式指標型別。

備註

樣板函式傳回具有弱式的結果型別的簡單呼叫包裝函式, cw,這類運算式 cw(t, a2, ..., aN) 與 INVOKE(pm, t, a2, ..., aN)相當於。 而不會擲回任何例外狀況。

傳回的呼叫包裝函式從 std::unary_function<cv Ty*, Ret> 衍生 (因此定義巢狀型別 result_type 做為 Ret 之同義資料表 (Synonym) 和巢狀型別 argument_type 做為 cv Ty*之同義資料表),才能使用這個型別 Ty 是指標傳遞至不接受引數的 cv 限定詞 cv 的成員函式。

傳回的呼叫包裝函式從 std::binary_function<cv Ty*, T2, Ret> 衍生 (因此定義巢狀型別 result_type 做為 Ret之同義資料表,巢狀型別 first argument_type 做為 cv Ty*之同義資料表 (Synonym) 和巢狀型別 second argument_type 做為 T2之同義資料表),才能使用這個型別 Ty 是指標傳遞至採用一個引數的 cv 限定詞 cv 的成員函式,型別 T2。

範例

 

// std_tr1__functional__mem_fn.cpp 
// compile with: /EHsc 
#include <functional> 
#include <iostream> 
 
class Funs 
    { 
public: 
    void square(double x) 
        { 
        std::cout << x << "^2 == " << x * x << std::endl; 
        } 
 
    void product(double x, double y) 
        { 
        std::cout << x << "*" << y << " == " << x * y << std::endl; 
        } 
    }; 
 
int main() 
    { 
    Funs funs; 
 
    std::mem_fn(&Funs::square)(funs, 3.0); 
    std::mem_fn(&Funs::product)(funs, 3.0, 2.0); 
 
    return (0); 
    } 
 
  

需求

標題: <functional>

命名空間: std

請參閱

參考

function Class