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


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 и вложенный тип 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 Class