// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include < iostream>
#include <string>
#include <functional>
using namespace std;
string func(int a, int b)
{
return "Hello World";
}
class A
{
public:
std::function<string(int, int)> callback;
};
int main()
{
int(*test)(int a,int b );//声明一个函数指针
A a;
a.callback = func;
cout<<a.callback(1,1);
int t = 8;
auto lambda = [t](int a, int b) mutable{t += 1; return t; };//
auto lambda1 = [&t](int a, int b) {t += 1; return t; };//
cout << lambda(1,1);
cout << t;
cout << lambda1(1, 1);
cout << t;
cin >> t;
return 0;
}
//不加返回值(->string)可以自己推断,
//编译器把lambda转换为一种仿函数
//捕获内容不可修改(要修改加mutable)
//通过加引用的方式捕获,可以修改捕获值;