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