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