Поделиться через


Функция 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

См. также

Ссылки

Класс function