function Class

可调用对象的包装。

template<class Fty>
   class function  // Fty of type Ret(T1, T2, ..., TN)
   : public unary_function<T1, Ret>       // when Fty is Ret(T1)
   : public binary_function<T1, T2, Ret>  // when Fty is Ret(T1, T2)
   {
public:
   typedef Ret result_type;

   function();
   function(nullptr_t);
   function(const function& _Right);
   template<class Fty2>
      function(Fty2 fn);
   template<class Fty2, class Alloc>
       function (reference_wrapper<Fty2>, const Alloc& _Ax);
   template<class Fty2, class Alloc>
       void assign (Fty2, const Alloc& _Ax);
   template<class Fty2, class Alloc>
       assign (reference_wrapper<Fty2>, const Alloc& _Ax);
   function& operator=(nullptr_t);
   function& operator=(const function&);
   template<class Fty2>
      function& operator=(Fty2);
   template<class Fty2>
      function& operator=(reference_wrapper<Fty2>);
   void swap(function&);

   explicit operator bool() const;
   result_type operator()(T1, T2, ....., TN) const;

   const std::type_info& target_type() const;
   template<class Fty2>
      Fty2 *target();
   template<class Fty2>
      const Fty2 *target() const;
   template<class Fty2>
      void operator==(const Fty2&) const = delete;
   template<class Fty2>
      void operator!=(const Fty2&) const = delete;
};

参数

  • Fty
    包装的函数类型。

  • _Ax
    分配器功能。

备注

模板选件类是调用签名是 Ret(T1, T2, ..., TN)的调用包装。 可以在一个统一包装使用它包含多种可调用的对象。

一些成员函数采用命名所需目标对象的操作数。 可以以多种方式指定了这样的操作数:

fn --可调用的对象 fn;在调用后 function 对象持有 fn的副本

fnref -- fnref.get()名为的可调用的对象;在调用 function 对象包含对 fnref.get()之后

right --可调用包装对象,如果有,由 function 对象 right保存了

npc --null指针;在调用后 function 对象为空

在所有情况下,INVOKE(f, t1, t2, ..., tN),f 是可调用的对象,并 t1, t2, ..., tN 分别为类型 T1, T2, ..., TN lvalue,必须是限定,则为; Ret 无效,转换为 Ret。

空 function 对象不包含可调用的对象或对可调用的对象。

Bb982519.collapse_all(zh-cn,VS.110).gif构造函数

function::function

构造包装为空或存储任意类型可调用的对象具有固定的符号。

Bb982519.collapse_all(zh-cn,VS.110).gifTypedef

function::result_type

存储的可调用对象的返回类型。

Bb982519.collapse_all(zh-cn,VS.110).gif成员函数

function::assign

分配给该函数对象的可调用的对象。

function::swap

交换两个可调用的对象。

function::target

如果存储的可调用的对象是可调用的规定,测试。

function::target_type

获取在可调用对象的类型信息。

Bb982519.collapse_all(zh-cn,VS.110).gif运算符

function::operator unspecified

如果存储的可调用包装对象存在,测试。

function::operator()

调用可调用的对象。

function::operator=

替换存储的可调用的对象。

要求

标头: <functional>

命名空间: std

请参见

参考

mem_fn Function

reference_wrapper Class