共用方式為


mem_fn 函式

產生一個簡單呼叫包裝函式。

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 的同義字和巢狀型別 argument_type 做為 cv Ty*的同義字),只有型別 Ty 是指標傳遞至不接受引數的 cv 限定詞 cv 的成員函式。

傳回呼叫的包裝函式衍生自 std::binary_function<cv Ty*, T2, Ret> (因此定義巢狀型別 result_type 做為 Ret的同義字,巢狀型別 first argument_type 做為 cv Ty*的同義字和巢狀型別 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 類別