此std::函数与类似

This std::function is similar to

本文关键字:函数 std      更新时间:2023-10-16

我在练习lambdas,发现了以下代码:

auto make_fibo() 
{
  return [](int n) {
    std::function<int(int)> recurse;
    recurse = [&](int n){ 
       return (n<=2)? 1 : recurse(n-1) + recurse(n-2); 
    }; 
    return recurse(n);
  };
}

我不知道是这个,确切地说,不认识他std::function<int(int)> recurse;,在搜索和阅读后:

http://www.cplusplus.com/reference/functional/function/

我的问题是?此std::函数与此类似,例如:

typedef  int (*FredMemFn)(int i);

谢谢你,对不起你的英语。

std::function类型是函数指针的一种泛化。C++区分函数、成员函数和函数对象(如果你还没有听说过最后一个,那就去查吧!它们超级酷!),所以普通的函数指针不能像函数一样指向C++中所有可以调用的东西。std::function本质上是一种充当函数指针的类型,它可以指向任何可以像函数一样调用的东西。要使用std::function指向参数类型为Arg1, Arg2, ..., ArgN并返回类型为Ret的内容,请声明类型的变量

std::function<Ret (Arg1, Arg2, ..., ArgN)>
相关文章: