Функция 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, не принимающего аргументов.
Возвращаемая программа-оболочка вызова является производным от std::binary_function<cv Ty*, T2, Ret> (отсюда определение вложенного типа result_type синонимом Ret вложенный тип first argument_type синонимом cv Ty* и вложенный тип second argument_type синонимом T2), только если тип Ty функция указателя на член с резюме- квалификатором 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