std::function模板类是一个通用的可调用对象的包装器,用简单的、统一的方式处理可调用对象。
template
class function......
_Fty是可调用对象的类型,格式:返回列表(参数列表)。
包含头文件 #include
注意:
1 重载了bool运算符,用于判断是否包装了可调用对象。
2 如果std::function对象未包装可调用对象,使用std::function对象将抛出异常 std::bad_function_call
#include <iostream>
#include <functional>
using namespace std;
//普通函数
void show(int a, const string &b)
{
cout << a << b << endl;
}
//类中有静态成员函数
struct AA
{
static void show(int a, const string &b)
{
cout << a << b << endl;
}
};
//仿函数
struct BB
{
void operator()(int a, const string &b)
{
cout << a << b << endl;
}
};
//类中有普通函数
struct CC
{
void show(int a, const string &b)
{
cout << a << b << endl;
}
};
//可以被转换为普通函数指针的类
struct DD
{
using Fun = void (*)(int, const string &);
operator Fun()

文章详细介绍了C++中的std::function模板类,它作为一个通用的可调用对象包装器,可以封装各种类型的函数、成员函数、仿函数以及lambda表达式。通过std::function,可以以统一的方式处理这些不同类型的可调用对象,并且提供了bool运算符重载来检查对象是否已包装。文中给出了多个示例,包括普通函数、静态成员函数、仿函数、lambda表达式以及通过类转换为函数指针的例子,展示了std::function的使用方法。
最低0.47元/天 解锁文章
22

被折叠的 条评论
为什么被折叠?



