1#include <common/iostream_debug_helpers.h>
2
3#include <iostream>
4#include <memory>
5#include <vector>
6#include <map>
7#include <set>
8#include <tuple>
9#include <array>
10#include <utility>
11
12
13struct S1;
14struct S2 {};
15
16struct S3
17{
18 std::set<const char *> m1;
19};
20
21std::ostream & operator<<(std::ostream & stream, const S3 & what)
22{
23 stream << "S3 {m1=";
24 dumpValue(stream, what.m1) << "}";
25 return stream;
26}
27
28int main(int, char **)
29{
30 int x = 1;
31
32 DUMP(x);
33 DUMP(x, 1, &x);
34
35 DUMP(std::make_unique<int>(1));
36 DUMP(std::make_shared<int>(1));
37
38 std::vector<int> vec{1, 2, 3};
39 DUMP(vec);
40
41 auto pair = std::make_pair(1, 2);
42 DUMP(pair);
43
44 auto tuple = std::make_tuple(1, 2, 3);
45 DUMP(tuple);
46
47 std::map<int, std::string> map{{1, "hello"}, {2, "world"}};
48 DUMP(map);
49
50 std::initializer_list<const char *> list{"hello", "world"};
51 DUMP(list);
52
53 std::array<const char *, 2> arr{{"hello", "world"}};
54 DUMP(arr);
55
56 //DUMP([]{});
57
58 S1 * s = nullptr;
59 DUMP(s);
60
61 DUMP(S2());
62
63 std::set<const char *> variants = {"hello", "world"};
64 DUMP(variants);
65
66 S3 s3 {{"hello", "world"}};
67 DUMP(s3);
68
69 return 0;
70}
71