blob: 86ab18fd9cc432852110f58011eabafac5be8105 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#include <functional>
int foo(int x, int y) { return x + y - 1; }
struct Bar {
int operator()() { return 66; }
int add_num(int i) const { return i + 3; }
int add_num2(int i) {
std::function<int(int)> add_num2_f = [](int x) { return x + 1; };
return add_num2_f(i); // Set break point at this line.
}
};
int foo2() {
auto f = [](int x) { return x + 1; };
std::function<int(int)> foo2_f = f;
return foo2_f(10); // Set break point at this line.
}
int main(int argc, char *argv[]) {
int acc = 42;
std::function<int(int, int)> f1 = foo;
std::function<int(int)> f2 = [acc, f1](int x) -> int {
return x + f1(acc, x);
};
auto f = [](int x, int y) { return x + y; };
auto g = [](int x, int y) { return x * y; };
std::function<int(int, int)> f3 = argc % 2 ? f : g;
Bar bar1;
std::function<int()> f4(bar1);
std::function<int(const Bar &, int)> f5 = &Bar::add_num;
int foo2_result = foo2();
int bar_add_num2_result = bar1.add_num2(10);
return f1(acc, acc) + f2(acc) + f3(acc + 1, acc + 2) + f4() +
f5(bar1, 10); // Set break point at this line.
}
|