概述
# include <iostream>
# include <functional>
// 分别定义两种函数形式相似的 function, 主要看函数返回值和函数参数类型及其个数
typedef std::function<int(int, int)> comfun;
typedef std::function<int(int)> comfun1;
// 3种函数形式类似的具体函数实例
// 普通函数
int add(int a, int b)
{
std::cout << "add:" << std::endl;
return a + b;
}
// lambda表达式
auto mod = [](int a, int b)
{
std::cout << "mod:" << std::endl;
return a % b;
};
// 函数对象类
struct divide
{
//重载()
int operator()(int denominator, int divisor) {
std::cout << "divide:" << std::endl;
return denominator / divisor;
}
// 重载+
int operator+ (int a) {
std::cout << "add+1:" << std::endl;
return a + 1;
}
};
struct addOffset
{
int operator() (int a) {
return a + 1;
}
int operator+ (int a) {
return a + 1;
}
};
int main()
{
comfun a = add;
comfun b = mod;
comfun c = divide();
std::cout << a(5, 3) << std::endl;
std::cout << b(5, 3) << std::endl;
std::cout << c(5, 3) << std::endl;
comfun1 c1 = addOffset();
comfun1 c2 = addOffset();
std::cout << c1(1) + c2(2)<< std::endl;
getchar();
}
最后
以上就是笑点低小懒猪为你收集整理的c++ 11 std::function简单使用的全部内容,希望文章能够帮你解决c++ 11 std::function简单使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复