Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

function::operator()

公共成员函数  <functional>

Ret operator()(Args... args) const;

调用目标对象
调用target可调用对象,将args作为参数转发。

效果取决于function对象所指向的可调用对象的类型:


☲  参数


args...
调用的参数。
如果函数对象所指向的可调用对象的类型是成员指针,则第一个参数应是该成员定义的对象(或引用,或指向该成员的指针)。
args...作为类模板形参在签名中指定的参数类型。

☉  返回值



调用的结果是Ret类型的值。
如果Ret为void,则函数不返回任何值。
Ret是在作为类模板参数的签名中指定的返回类型(别名为成员类型function::result_type)。

☣  示例



// function::operator() example
#include <iostream>     // std::cout
#include <functional>   // std::function, std::plus, std::minus, std::multiplies

int main () {
  // an array of functions:
  std::function<int(int,int)> fn[] = {
    std::plus<int>(),
    std::minus<int>(),
    std::multiplies<int>()
  };

  for (auto& x: fn) std::cout << x(10,5) << '\n';

  return 0;
}

输出:
15
5
50

⇄ 数据竞争



对象及其target都被访问。

☂ 异常安全性



提供与对目标可调用对象的调用相同的级别。
如果函数对象为空(即,它不是可调用的),则会抛出bad_function_call异常。

🍄  另请参阅



function::target 获取指向目标的指针(公共成员函数)
function::operator bool 检查是否可调用(公共成员函数)

联系我们 免责声明 关于CandCplus 网站地图