C++ 此std::函数类似于
我在练习lambdas,我发现了以下代码:C++ 此std::函数类似于,c++,C++,我在练习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::
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类型是函数指针的泛化。C++在函数、成员函数和函数对象之间进行区分(如果你还没有听说过最后一个,那么就去查一下!它们是超级酷的)!所以,普通函数指针不能指向C++中所有可以调用的函数类型。code>std::function本质上是一种类似于函数指针的类型,它可以指向任何可以调用的函数。要使用
std::function
指向具有参数类型Arg1、Arg2、…、ArgN
和返回类型Ret
的对象,请声明类型为
std::function<Ret (Arg1, Arg2, ..., ArgN)>
std::函数
我不知道,但现在我认为这非常好,语法非常清晰,谢谢您的回复
std::function<Ret (Arg1, Arg2, ..., ArgN)>