此std::函数与类似
This std::function is similar to
我在练习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)>
相关文章:
- 无法引用该函数" std:: variant <_Types...> operator =",因为此函数已被删除
- 错误:使用已删除的函数"std::unique_ptr<...>
- 我有模板功能.通过使用函数std::for_each,用这个容器中的最大数字替换每个正数
- 如何使用函数std::min()来计算最小值
- 删除了 g++ 在 linux 中basic_stringstream函数 std
- 如何在 c++ 中使用返回类型导出函数 std::map
- 错误:使用已删除的函数"std::atomic<_Tp>::atomic() [_Tp = node]"
- 使用 SFINAE 检查函数 std::to_string 是否存在类型
- C++14 unique_ptr并使用已删除的函数'std::unique-ptr' unique_ptr错误
- 为什么函数 std::basic_streambuf::setg() 需要非常量 agruments
- C++将已删除的函数 std::unique_ptr 与基类一起使用
- 奇怪的错误:当没有真正创建指针时,使用已删除的函数'std::unique_ptr<_Tp,_Dp>::unique_ptr
- 通过模板构造函数(std ::功能和迷你案例)将构造函数触发
- 错误:使用已删除的函数"std::atomic<_Tp>::atomic()
- 错误:使用已删除的函数std::basic_ofstream(OpenCV和C++11)
- 类成员容器迭代器在成员函数std::find中不兼容,但为什么不兼容呢
- 没有构造函数 std::istream_iterator 的实例
- 错误:没有与参数列表匹配的重载函数"std::make_shared"实例
- 错误:使用已删除的函数"std::thread::thread(const std::thread&)"
- 不能在没有对象的情况下调用成员函数 std::string class::function()