forked from taskflow/taskflow
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathif_else.cpp
More file actions
37 lines (27 loc) · 774 Bytes
/
if_else.cpp
File metadata and controls
37 lines (27 loc) · 774 Bytes
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
// This program demonstrates how to create if-else control flow
// using condition tasks.
#include <taskflow/taskflow.hpp>
int main() {
tf::Executor executor;
tf::Taskflow taskflow;
// create three static tasks and one condition task
auto [init, cond, yes, no] = taskflow.emplace(
[] () { },
[] () { return 0; },
[] () { std::cout << "yes\n"; },
[] () { std::cout << "no\n"; }
);
init.name("init");
cond.name("cond");
yes.name("yes");
no.name("no");
cond.succeed(init);
// With this order, when cond returns 0, execution
// moves on to yes. When cond returns 1, execution
// moves on to no.
cond.precede(yes, no);
// dump the conditioned flow
taskflow.dump(std::cout);
executor.run(taskflow).wait();
return 0;
}