MCPcopy Create free account
hub / github.com/arximboldi/immer / main

Function main

example/flex-vector/flex-vector.cpp:13–103  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11#include <cassert>
12
13int main()
14{
15 {
16 // include:push-back/start
17 auto v1 = immer::flex_vector<int>{1};
18 auto v2 = v1.push_back(8);
19
20 assert((v1 == immer::flex_vector<int>{1}));
21 assert((v2 == immer::flex_vector<int>{1, 8}));
22 // include:push-back/end
23 }
24 {
25 // include:push-front/start
26 auto v1 = immer::flex_vector<int>{1};
27 auto v2 = v1.push_front(8);
28
29 assert((v1 == immer::flex_vector<int>{1}));
30 assert((v2 == immer::flex_vector<int>{8, 1}));
31 // include:push-front/end
32 }
33
34 {
35 // include:set/start
36 auto v1 = immer::flex_vector<int>{1, 2, 3};
37 auto v2 = v1.set(0, 5);
38
39 assert((v1 == immer::flex_vector<int>{1, 2, 3}));
40 assert((v2 == immer::flex_vector<int>{5, 2, 3}));
41 // include:set/end
42 }
43
44 {
45 // include:update/start
46 auto v1 = immer::flex_vector<int>{1, 2, 3, 4};
47 auto v2 = v1.update(2, [&](auto l) { return ++l; });
48
49 assert((v1 == immer::flex_vector<int>{1, 2, 3, 4}));
50 assert((v2 == immer::flex_vector<int>{1, 2, 4, 4}));
51 // include:update/end
52 }
53
54 {
55 // include:take/start
56 auto v1 = immer::flex_vector<int>{1, 2, 3, 4, 5, 6};
57 auto v2 = v1.take(3);
58
59 assert((v1 == immer::flex_vector<int>{1, 2, 3, 4, 5, 6}));
60 assert((v2 == immer::flex_vector<int>{1, 2, 3}));
61 // include:take/end
62 }
63
64 {
65 // include:drop/start
66 auto v1 = immer::flex_vector<int>{1, 2, 3, 4, 5, 6};
67 auto v2 = v1.drop(3);
68
69 assert((v1 == immer::flex_vector<int>{1, 2, 3, 4, 5, 6}));
70 assert((v2 == immer::flex_vector<int>{4, 5, 6}));

Callers

nothing calls this directly

Calls 8

push_frontMethod · 0.80
push_backMethod · 0.45
setMethod · 0.45
updateMethod · 0.45
takeMethod · 0.45
dropMethod · 0.45
insertMethod · 0.45
eraseMethod · 0.45

Tested by

no test coverage detected