| 29 | int global_var = 0; |
| 30 | |
| 31 | struct add_functor |
| 32 | { |
| 33 | add_functor() { var = 1;} |
| 34 | add_functor(int v):var(v) {} |
| 35 | |
| 36 | template <typename T, typename U, typename V> |
| 37 | void operator()(T a, U b, V& res) |
| 38 | { |
| 39 | dlib::sleep(20); |
| 40 | res = a + b; |
| 41 | } |
| 42 | |
| 43 | void set_global_var() { global_var = 9; } |
| 44 | void set_global_var_const() const { global_var = 9; } |
| 45 | |
| 46 | void set_global_var_arg1(int val) { global_var = val; } |
| 47 | void set_global_var_const_arg1(int val) const { global_var = val; } |
| 48 | void set_global_var_arg2(int val, int val2) { global_var = val+val2; } |
| 49 | void set_global_var_const_arg2(int val, int val2) const { global_var = val+val2; } |
| 50 | |
| 51 | void operator()() |
| 52 | { |
| 53 | global_var = 9; |
| 54 | } |
| 55 | |
| 56 | // use an any just so that if this object goes out of scope |
| 57 | // then var will get all messed up. |
| 58 | any var; |
| 59 | void operator()(int& a) { dlib::sleep(100); a = var.get<int>(); } |
| 60 | void operator()(int& a, int& b) { dlib::sleep(100); a = var.get<int>(); b = 2; } |
| 61 | void operator()(int& a, int& b, int& c) { dlib::sleep(100); a = var.get<int>(); b = 2; c = 3; } |
| 62 | void operator()(int& a, int& b, int& c, int& d) { dlib::sleep(100); a = var.get<int>(); b = 2; c = 3; d = 4; } |
| 63 | }; |
| 64 | |
| 65 | |
| 66 | void set_global_var() { global_var = 9; } |