1#include <get_n.h>
2#include <iostream>
3
4
5
6struct Position {
7 double x, y;
8};
9
10struct Mass {
11 double value;
12};
13
14struct Velocity {
15 double x, y;
16};
17
18int main(int, char *[]) {
20
21
23 .
insert([](Position& p, Mass& m) {
24 p.x = 10;
25 p.y = 20;
26 m.value = 100;
27 });
28
29 {
30 auto [pos, mass] = e.get_mut_n<Position, Mass>();
31 pos.x += 5;
32 mass.value += 3;
33 std::cout << "Position: {" << pos.x << ", " << pos.y << "}\n";
34 std::cout << "Mass: {" << mass.value << "}\n";
35
36
37
38 }
39 std::cout << "\n";
40 {
41 const auto [pos, mass] = e.get_n<Position, Mass>();
42
43
44 std::cout << "Position: {" << pos.x << ", " << pos.y << "}\n";
45 std::cout << "Mass: {" << mass.value << "}\n";
46
47
48
49 }
50 std::cout << "\n";
51
52 {
53 const auto [pos, velocity, mass] = e.try_get_n<Position, Velocity, Mass>();
54
55 std::cout << "Position: {" << pos->x << ", " << pos->y << "}\n";
56 if (velocity) {
57 std::cout << "Velocity: {" << velocity->x << ", " << velocity->y << "}\n";
58 } else {
59 std::cout << "Velocity: not found\n";
60 }
61 std::cout << "Mass: {" << mass->value << "}\n";
62
63
64
65
66 }
67
68 return 0;
69}
flecs::entity entity(Args &&... args) const
Create an entity.
const Self & insert(const Func &func) const
Set 1..N components.